我尝试保留 Hugepages 供 DPDK 使用。我像这样更改 /etc/default/grub 中的配置:
GRUB_CMDLINE_LINUX_DEFAULT="crashkernel=1G-:256M quiet default_hugepagesz=1G hugepagesz=1G hugepages=50"
GRUB_CMDLINE_LINUX="eagerfpu=on cgroup_enable=memory swapaccount=1 intel_idle.max_cstate=0 processor.max_cstate=0 nopti"
然后我跑
#update-grub
#reboot
但它不起作用。虽然我在 /boot/grub/grib.cfg 中找到了它
# grep 'hugepages' /boot/grub/grub.cfg
linux /boot/vmlinuz-3.16.0-4-amd64 root=UUID=4efa0660-cd6c-4d8e-831b-bf217bf15915 ro eagerfpu=on cgroup_enable=memory swapaccount=1 intel_idle.max_cstate=0 processor.max_cstate=0 nopti crashkernel=1G-:256M quiet default_hugepagesz=1G hugepagesz=1G hugepages=50
linux /boot/vmlinuz-3.16.0-4-amd64 root=UUID=4efa0660-cd6c-4d8e-831b-bf217bf15915 ro eagerfpu=on cgroup_enable=memory swapaccount=1 intel_idle.max_cstate=0 processor.max_cstate=0 nopti crashkernel=1G-:256M quiet default_hugepagesz=1G hugepagesz=1G hugepages=50
/proc/meminfo 保持不变:
# grep '^Huge' /proc/meminfo
HugePages_Total: 32
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 1048576 kB
顺便说一下,这是我的操作系统:
# uname -a
Linux n15-063-139 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2+deb8u5 (2017-09-19) x86_64 GNU/Linux
我对 dpdk 确实还很陌生,提前谢谢大家。
答案1
我想我找到原因了。这是 kexec。当我运行重启,此服务器将通过 kexec 重新启动,并且在 /etc/default/kexec 中:
# Load the default kernel from grub config (true/false)
USE_GRUB_CONFIG=false
因此 hugepage 配置不起作用。我将 'false' 改为 'true',然后运行重启问题解决了。或者我应该直接运行重启-f,不去联系init系统。