Chinaunix首页 | 论坛 | 博客
  • 博客访问: 88795
  • 博文数量: 47
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 265
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-18 15:16
文章分类
文章存档

2015年(3)

2014年(44)

我的朋友

分类: LINUX

2014-11-20 09:01:06

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//shmmax的值,请注意在32位系统中,它将限制在4GB。

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

  • 本文来自:
  • 本文链接:

阅读(982) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~