일부 BSD 시스템의 슈퍼페이지 크기는 2MB인 반면 다른 시스템의 슈퍼페이지 크기는 4MB인 것으로 보입니다. 나는 다른 사람을 만난 적이 없습니다. 사용 가능한 슈퍼페이지 크기를 알 수 있는 방법이 있나요? 이상적으로는 명령줄에서 사용 가능하며 활성화할 필요가 없습니다.
답변1
Alan L. Cox가 흥미로운 일을 했습니다.옵테론 벤치마크그리고 원본 슈퍼페이지 논문(Usenix 2002에 게시됨)의 공동 저자입니다.슈퍼페이지에 대한 실용적이고 투명한 운영 체제 지원
2013년 슈퍼페이지 출시프리BSD 7.2amd64 및 i386에서 사용 가능
[amd64, i386] FreeBSD 가상 메모리 하위 시스템은 이제 애플리케이션 메모리의 슈퍼페이지를 완전히 투명하게 사용하도록 지원합니다. 애플리케이션 메모리 페이지는 애플리케이션 코드를 수정하지 않고도 슈퍼페이지로 동적으로 승격되거나 강등될 수 있습니다. 이러한 변경은 애플리케이션 변경 및 가상 메모리 유연성 저하라는 단점 없이 향상된 가상 메모리 효율성 및 감소된 TLB(변환 참조 버퍼) 누락과 같은 대형 페이지 크기의 이점을 제공합니다. 이 기능은 기본적으로 비활성화되어 있으며
vm.pmap.pg_ps_enabled
로더 조정 가능 항목을 로 설정하여 활성화 할 수 있습니다1
.
2014년에는 에 추가되었습니다.프리BSD 10.0ARMv6/v7에서 사용할 수 있습니다. 4KB 및 1MB 페이지 지원동적으로.개정 25418사용할 상태입니다 vm.pmap.sp_enabled
( 에서 설정 loader.conf
). 로더를 사용하지 않는 경우 sys/arm/arm/pmap-v6.c
Zbigniew Bodek의 훌륭한 BSDcan 데모가 있습니다.ARM 기반 FreeBSD에 대한 투명한 슈퍼페이지 지원
이것을 확인하는 데 사용합니다시스템 제어:
$ uname -rm
11.2-STABLE amd64
$ sysctl vm.pmap.pg_ps_enabled
vm.pmap.pg_ps_enabled: 1
Linux는 2011 커널에서 hugepages(슈퍼페이지) 지원을 받습니다.버전 2.6.38. 당신은 또한 볼 수 있습니다대형 페이지 소개. Linux에서는 (만!) 이 작업이 수행됩니다.거대한 관리자다른 답변에서 제안한대로.
OS XI의 경우생각하다다음을 통해 활성화됩니다.기본그러나 나는 결코 이것에 대한 권위자가 아닙니다. 그럴 때인 것 같아요.시험그들은 단지 슈퍼페이지를 할당하려고 합니다. 슈퍼페이지가 활성화되어 있는지 확인하는 검사가 표시되지 않습니다.
답변2
XNU 및 Mach 커널(MacOS/Darwin)의 경우제목예, x86_64에서는 항상 2MB입니다. 그렇지 않으면 지원되지 않습니다.
이를 동적으로 수행하려면 다음을 수행해야 합니다.
echo "#include <mach/vm_statistics.h>" | gcc -dM -E - | grep VM_FLAGS_SUPERPAGE_SIZE_