mongoDB禁用大内存页面transparent_hugepage关闭的临时方案

1.什么是Transparent HugePages?

Transparent HugePages是RHEL6的新特性。

为了提升性能,Kernel会将程序缓存在内存中,每页内存以2M为单位。

想要有效的使用THP,kernel要在内存中找到一系列连续的物理内存来满足需求,也可能会对齐。

为了达到这个效果,系统新加了一个khugepaged进程,这个进程会偶尔尝试把正在使用的较小页面换到hugepage中。这样就能使hugepage使用达到最大化。

2.如何关闭THP

尽管THP的本意是为提升性能,但某些数据库厂商还是建议直接关闭THP(比如说Oracle、MongoDB等),否则可能导致性能下降,内存锁,甚至系统重启等问题。

我们再使用mongodb时,登录会经常看到下图提示

menu.saveimg.savepath20181122164329.jpg

翻阅了些资料,还是获得了些答案,临时解决方案是在/etc/rc.local中加入如下两行

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

因为每次重新之前的修改都会失效,所以直接添加到开机启动自动修改


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/585.html