【Linux】预留一定数量大页内存的方法

问题

Linux默认内存最小单位是页(page),其大小为4k,对于性能敏感型应用来说频繁切换页带来的时间开销,累计起来就是性能损耗,需要尽可能去避免。


解决方案

Linux恰好提供了大页(hugepage)来解决这个问题,默认大页的大小为2M,相当于512个最小页,大大减小了切页的频率也就减小了性能损耗。


操作实现

大页的数量是需要在系统参数中进行配置的,可在运行过程中生效也可以在启动系统的初始化阶段生效。

配置大页数量

这里仅提供其中一种方式:(需要有管理员权限才行)

sudo vi /etc/sysctl.conf

在末尾添加vm.nr_hugepages=1024意思就是预留大页数量为1024个,总大小为2M*1024=2G
然后保存退出即可。

运行时生效
sudo sysctl -p

也是需要管理员权限

系统启动时生效
sudo reboot

直接重启即可,也需要管理员权限


查看是否生效的方法

cat /proc/meminfo | grep HugePages_Total

这个不需要管理员权限,只要看到数量与我们设置的1024相同就说明预留成功了。


结论

大页内存可减少频繁切页带来的性能损耗,在进行数量配置时要格外谨慎,不能超过可用总内存大小。

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值