linux下的hugepage

本文介绍了HugePage在Linux环境下的工作机制及其在Oracle运行环境中的优势,包括非Swap特性、减轻TLB负担、减少PageTable空间及检索负载等。

HugePage广泛启用开始于Kernal 2.6,一些版本下2.4内核也可以是用。在操作系统Linux环境中,内存是以页Page的方式进行分配,默认大小为4K。如果需要比较大的内存空间,则需要进行频繁的页分配和管理寻址动作。

 

HugePage是传统4K Page的替代方案。顾名思义,是用HugePage可以让我们有更大的内存分页大小。无论是HugePage还是传统的正常Page,这个过程都涉及到OS内存寻址过程。

 

当一个进程访问内存的时候,并不是直接进行内存位置访问,是需要通过Page Table进行转移变换。在使用HugePage的情况下,PageTable具有了额外的属性,就是判断该页记录是HugePage还是Regular Page。

 

在Oracle运行环境中开启HugePage是有很多好处的。具体如下:

 

1)非Swap内存:当开启HugePage的时候,HugePage是不会Swap的;

2)减少TLB(TranslationLook aside Buffer)负担:TBL是在CPU里面的一块缓冲区域,其中包括了部分Page Table内容。使用HugePage可以减少TLB工作负载;

3)减少Page Table空间负载:在PageTable管理中,每条Page记录是要占据64byte的空间的。也就是说,如果一块50G的RAM,4k大小的PageTable要有80MB左右;

4)减少PageTable检索负载:更小的PageTable意味着更快的检索定位能力;

5)内存性能提升:Page数量减少、大小的增加,减少了管理过程的复杂性,进一步减少了瓶颈出现的概率;

### 配置DPDK Hugepages 在Linux环境中配置Hugepages对于优化内存管理和提高性能至关重要。为了使DPDK能够高效运行,必须正确设置大页内存。 #### 设置内核参数 要启用并分配大页,需调整几个重要的内核参数: - `/proc/sys/vm/nr_hugepages` 控制可使用的巨大页面数量。 - `/sys/kernel/mm/hugepages/hugepages-<size>/nr_hugepages` 可用于特定大小的大页数目的设定[^1]。 #### 创建挂载点 创建一个专门的文件系统来管理这些大页是非常必要的。通常做法是在`/mnt/huge`下建立一个新的tmpfs实例: ```bash sudo mkdir -p /mnt/huge echo "nodev /mnt/huge hugetlbfs defaults 0 0" | sudo tee -a /etc/fstab ``` #### 修改权限 为了让应用程序可以访问到已分配好的大页空间,还需要适当放宽该路径下的读写权限: ```bash sudo mount -t hugetlbfs nodev /mnt/huge sudo chmod a+rwx /mnt/huge ``` #### 自动化脚本 考虑到每次重启都需要重新执行上述命令较为繁琐,因此建议编写一段简单的初始化脚本来完成这项工作。下面是一个例子: ```bash #!/bin/bash # Set number of huge pages (e.g., 1024 * 2MB = 2GB) NUM_PAGES=1024 PAGE_SIZE="2M" if [ ! -d "/mnt/huge" ]; then echo "Creating /mnt/huge" sudo mkdir -p /mnt/huge fi echo "Mounting hugetlbfs..." grep -s '/mnt/huge' /proc/mounts || \ (sudo mount -t hugetlbfs none /mnt/huge) echo "$NUM_PAGES" | sudo tee /proc/sys/vm/nr_hugepages echo "Setting permissions on /mnt/huge" sudo chmod 777 /mnt/huge ``` 保存此脚本至合适位置,并赋予其可执行权限以便日后调用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值