PF_RING Libzero中使用HugePage

Libzero中使用HUGEPAGES

Libzero使用Hugepage来增加报文处理使用的内存大小。如果使用PF_RING ZC,它是必选的。

注:Hugepage在Intel DPDK开发中也是必选的!!

本文档描述如何在你的系统中启用hugepage。

快速设置

$ echo 1024 >/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages

$ mount -t hugetlbfs nodev/mnt/huge

完整过程

通常Linux使用4KB的内存页,但是提供显式的接口来分配更大的内存页,称为hugepage。它方便开发人员和管理员决定什么时候使用它们。

Hugepage的优点:

-         保留更大的物理内存用于内存的分配,否则当要求物理上连续的内存时尤其容易失败。

-         减少开销:作为TLB(转换查看缓冲区)包括每页虚拟内存到物理内存地址的映射,缺省内存页大小时会使用大量的内存,导致管理TLB条目上的处理开销。

缺省hugepage大小通常是2MB。Hugepage大小在/proc/meminfo中可以找到:

$ cat /proc/meminfo | grepHugepagesize

Hugepagesize: 2048 kB

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

可以修改缺省的hugpage的大小,启动时预留大量的内存使用下面的内核选项:

default_hugepagesz=1Ghugepagesz=1G hugepages=4

如果命令返回非空的字符串,支持2MB的内存页:

$ cat /proc/cpuinfo | greppse

如果命令返回非空的字符串,支持1GB的内存页:

$ cat /proc/cpuinfo | greppdpe1gb

为了让hugepage可以使用,Linux提供一个基于RAM的文件系统,称为hugetlbfs,必须使用下面命令挂载:

$ mount -t hugetlbfs none/mnt/hugepages

没有选项时将使用缺省的hugepage大小。为了使用不同的大小,可以指定pagesize=参数。

为了控制绑定到挂载点的最大数量内存,可以指定size=选项(size圆整到接近hugepage大小)。

例如:

$ mount -t hugetlbfs -opagesize=1G,size=2G none /mnt/hugepages

可能查看当前使用多少内存页,使用下面的命令:

$ cat/sys/devices/system/node/node*/meminfo | grep Huge

Node 0 HugePages_Total:  1024

Node 0 HugePages_Free:  1024

Node 0 HugePages_Surp:      0

可能的错误

1."error mmap'ing hugepage xxx: Resource temporarily unavailable"

原因:

-         你可能没有mmap hugepage的权限

-         增加“max locked memory” ulimit(参考ulimit -l)来容纳用户缓冲区和元数据的内存。你能手动增加ulimit的值。

$ulimit -l 4194304

-         增加/proc/sys/kernel/shmmax的值,请注意在32位系统中,它将限制在4GB。

$echo 2147483648 > /proc/sys/kernel/shmmax


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值