내 컴퓨터에 RAM을 많이 추가했고 다시는 RAM이 부족해지지 않을 것이기 때문에 커널의 페이지 크기를 4KB에서 4MB로 변경하고 싶습니다.
그 아이디어는 많은 양의 메모리가 필요한 프로그램이 페이지를 할당하는 데 더 적은 시간을 소비한다는 것입니다. 이렇게 하면 성능이 향상될 것이라고 생각하고 시도해 보고 싶습니다.
달리는 동안 어디에서도 찾을 수 없었습니다 make menuconfig
. 이를 수행할 수 있는 방법이 있습니까?
답변1
PAGESIZE는 커널이 컴파일될 때 설정됩니다. 이 선택은 i386 하드웨어에만 유효합니다. 64비트 시스템이나 다른 아키텍처를 실행하는 경우 페이지 크기는 4K이며 변경할 수 없습니다.
답변2
당신은 한 번 살펴보고 싶을 수도 있습니다 Transparent Hugepages
. .config 키는 CONFIG_TRANSPARENT_HUGEPAGE입니다. 이 기능을 활성화해도 자동으로 거대한 페이지가 제공되지는 않습니다. 기본값으로 설정하려면 CONFIG_TRANSPARENT_HUGEPAGE_MADVISE를 "n"으로 설정해야 합니다.
또한 임의의 페이지 크기를 선택할 수는 없습니다. 스키마를 사용하여 거대한 페이지 크기를 허용합니다. x86_64의 경우 1Mb입니다.https://en.wikipedia.org/wiki/Page_(computer_memory)#Huge_pages전체 테이블용.
답변3
보드는 귀하가 찾고 있는 정확한 솔루션인 것 같습니다. 슬랩은 커널에 의해 사전 할당된 메모리 단위이며 할당 오버헤드를 어느 정도 피해야 하며, 이는 정확히 달성하려는 것 같습니다.
자세한 내용은 다음을 참조하세요.Wikipedia: 슬래브 할당
페이지 크기(가능한 경우)를 1MiB로 변경하면 메모리가 너무 많이 낭비됩니다. 많은(수십 개) 하위 프로세스와 데몬은 단지 몇 kB의 메모리만 차지합니다. 이렇게 저렴한 메모리가 있나요?