1、hugepage永久 配置
修改/etc/default/grub 中的 GRUB_CMDLINE_LINUX,然后运行 grub 更新并重启系统:
1default_hugepagesz=1Ghugepagesz=1Ghugepages=16hugepagesz=2Mhugepages=2048iommu=pt intel_iommu=on isolcpus=1-13,15-27
2grub2-mkconfig-o/boot/grub2/grub.cfg
3reboot
hugepage 的数量和类型可根据系统中的可用内存进行调整。isolcpus参数支持我们将某些 CPU 与 Linux 调度程序隔离,以便基于 DPDK 的应用能够锁定到这些 CPU 上。
重启系统后,查看内核 cmdline 并按照如下方式分配 hugepage。
接下来是安装 hugepage 文件系统,加载vfio-pci用户空间驱动程序。
1mkdir-p/mnt/huge
2mkdir-p/mnt/huge_2mb
3mount-t hugetlbfs hugetlbfs/mnt/huge
4mount-t hugetlbfs none/mnt/huge_2mb-o pagesize=2MB
2、临时配置
Hugepage能够动态预留,执行命令:
$ echo 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
上面通过没有节点关联的系统分配内存页。如果希望强制分配给指定的NUMA节点,你必须做:
#echo 1024 >/sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
#echo 1024 > /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages
hugepages-2048kB指预留2M的大小为1024个,一共2*1024M,hugepages-1048576kB指预留1G的大小
3、查看HugePages情况:
cat /proc/meminfo
4、查看挂载情况
cat /proc/mounts
会看见hugetlbfs /mnt/huge hugetlbfs rw,relatime 0 0这样的,这就是挂载了大页,在free不够时,在确定可以umount时,把这些umount一下就可以了,vpp代码自动挂载大页的,ovs+dpdk需要手动挂载