有几个问题已经在询问如何修复mongodb警告:
** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always.'** We suggest setting it to 'never'
但我想知道是否应该修复它.我在Google云上运行的Ubuntu VM上收到MongoDB 3.0.1的警告.我应该相信MongoDB“永远不会更好”吗?或者,我应该相信Google / Ubuntu,他们将其设置为“始终”是有充分理由的吗?我想有一些权衡需要考虑,不知道我要交易什么来保留它或修复它.
询问如何修复它很好,但询问是否修复它似乎更明智.
最佳答案编辑:自从我写这个答案以来,Mongodb已经解决了这个问题.他们的建议是在https://docs.mongodb.com/master/tutorial/transparent-huge-pages/,可能应该是你的首选解决方案.我的原始答案仍然有效,但我现在认为这是一个正式的解决方案.原始答案:根据MongoDB文档,http://docs.mongodb.org/manual/reference/transparent-huge-pages/和支持,https://jira.mongodb.org/browse/DOCS-2131,transparent_hugepage(THP)旨在创建更少的大内存块,而不是具有大量内存的系统中的许多小内存块.如果您的软件需要大量连续的内存访问,这非常有用.但是,对于MongoDB,无论可用内存如何,它都需要大量较小的内存访问,因此在禁用THP时性能会更好.
这让我觉得无论哪种方式都可行,但是你可以通过关闭THP获得更好的mongo(或任何数据库)性能,从而为你提供更小的内存.如果你没有太多记忆,无论你跑什么,THP都应该关闭.
上面的链接概述了几种方法.最普遍适用的似乎是编辑rc.local.
$sudo nano /etc/rc.local
在“退出0”行之前插入以下行.
...if test -f /sys/kernel/mm/transparent_hugepage/khugepaged/defrag; then echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defragfiif test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defragfiif test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabledfiexit 0
注意:基于redhat的系统可能使用“redhat_transparent_hugepage”而不是“transparent_hugepage”,可以通过以下方式检查:
ls /sys/kernel/mm/*transparent_hugepage*/enabledcat /sys/kernel/mm/*transparent_hugepage*/enabled
要应用更改,请重新启动(将运行rc.local)或:
$sudo su# source /etc/rc.local# service mongod restart# exit
正确应用上面所做的更改 总结
以上是内存溢出为你收集整理的linux – 为什么mongodb会抱怨transparent_hugepage?全部内容,希望文章能够帮你解决linux – 为什么mongodb会抱怨transparent_hugepage?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)