Linux内存管理 - 大页 (三)
静态大页可以通过两种方法来设置
1. 检查 /proc/meminfo, 确认系统支持HugePage
HugePages_Total: 系统中配置的大页数
HugePages_Free:没有访问过的大页数
HugePage_Rsvd: 已经分配但是还未使用的页面数
2. 配置静态大页
- 通过在bootargs传参在系统启动过程中预留大页
bootargs参数: 预分配大页数量hugepages和预分配大页的大小hugepagessz
*开机时就通过bootmem分配大页, 不存在因为内存碎片导致分不出大页的情况, 从而保证预留的成功性。
- 通过sysfs下的文件节点申请和释放大页
- echo 5 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
含义:保持系统中2MB的大页有5个。若已经存在5个大页则什么都不做;若少于5个则分配够5个;若多于5个则释放多余的大页(前提是未被使用)。
-
- echo 5 > /sys/devices/system/node/node[0-9]*/hugepages/hugepages-2048kB/nr_hugepages
含义:在指定的numa node上分配5个指定大小(2MB)的大页。
-
- cat /sys/kernel/mm/hugepages/hugepages-2048kB/free_hugepages
含义:查看系统中空闲的的2MB大页的数量