+2 投票
分类:经验之谈 | 用户: (13.1k 分)

优势

 

通过使用hugepage分配可以提高性能,因为需要更少的页,因此需要更少Translation Lookaside Buffers (TLB,高速传送缓存),使用TLB可以减少将虚拟页地址转换成物理页地址的时间。

如果没有hugepage,使用标准4K页大小的话,可能产生大量TLB miss,影响性能。

 

使用

hugepage的分配应该在启动时完成,或者在系统启动之后尽可能在将内存分片成物理内存之前。

要在启动时保留hugepage内存,需要在内核启动的命令行添加一条命令。

对于2MB的页,只需要将选项hugepages传递给内核。例如,要保留1024个2MB的页,可用以下命令:

    hugepages=1024

 

对于其它大小的hugepage尺寸,如1G的页,需要明确指定该尺寸,或者将该尺寸指定为默认hugepage的大小。

例如,要保留4个1G大小的页,需要用以下命令:

    default_hugepagesz=1G hugepagesz=1G hugepages=4

 

注意:

(1)CPU支持的hugepage大小可以通过CPU的flags得知:

如果pse存在,则支持2M的hugepage。

如果pdpe1gb,则支持1G的hugepage。

(2)对于64位系统,如果平台支持,建议使用1GB大小的hugepage。

 

对于包含两个CPU槽位的NUMA系统,启动时保留的hugepage数会平均分配给两个槽。

(假设两个槽位均有足够内存)

 

另外,对于2MB大小的页,还有一个方法可以在系统启动之后分配hugepages。

对于单节点的系统(以分配1024个页为例):

$ 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

 

但是对于1G的页,无法在系统启动之后再分配保留的hugepage内存,需要按上文所述方法在启动项后指定。

 

结合DPDK使用hugepages

hugepage内存分配好后,要使其对DPDK可用,需要执行以下操作:

# mkdir /mnt/huge

# mount -t hugetlbfs nodev /mnt/huge

 

也可以在/etc/fstab文件中添加以下命令,使其重启后有效:

nodev /mnt/huge hugetlbfs defaults 0 0

 

对于1G的页,页大小必须作为mount选项指定:

nodev /mnt/huge_1GB hugetlbfs pagesize=1GB 0 0

1个回答

+3 投票
用户: (810 分)
采纳于 用户:
 
已采纳

你好, 我的centos7 默认使用的hugepages 为1Gb的, 我也是通过 

echo > 4 /sys/devices/system/node/node0/hugepages/hugepages-1048576kB/nr_hugepages

echo > 4 /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages

的方式配置的. 然后挂载如下: 

mkdir -p /mnt/huge-1g

mount -t hugetlbfs hugetlbfs /mnt/huge-1g -o "pagesize=1G"

的方式, 好像也是可以的. 我目前只是运行了helloworld例程. 

用户: (13.1k 分)
多谢分享!
之前还没注意,原来CentOS7已经支持默认1G的大页内存了,赞!

相关问题

0 投票
1 回答
最新提问 10月 25, 2017 分类:DPDK其他问题 | 用户: luobo101 (300 分)
0 投票
1 回答
最新提问 4月 12, 2018 分类:DPDK初学入门 | 用户: shanshanpt (120 分)
0 投票
2 回答
最新提问 3月 16, 2017 分类:DPDK高级应用 | 用户: huangyao (140 分)
+2 投票
2 回答
+2 投票
0 回答
最新提问 4月 9, 2015 分类:经验之谈 | 用户: sysight (13.1k 分)

欢迎来到 DPDK交流社区 ,有什么问题可以尽管在这里提问,您将会收到社区其他成员的回答;也可以将您的总结写在这里,为社区其他成员提供帮助。

QQ交流2群:635461501 (入群请注明来源)

冀ICP备15005332号-2
...