2015-04-03 60 views
11

后,我更新使用MongoDB的启动警告更新

sudo apt-get install mongodb-org 

MongoDB是从2.4到3.0更新MongoDB的。在连接到mongo shell后不久,它显示下面的启动警告。我不知道修理它。建议我如何解决这些警告?

MongoDB shell version: 3.0.1 
connecting to: test 
Server has startup warnings: 
2015-04-03T13:37:53.536+0530 I CONTROL [initandlisten] 
2015-04-03T13:37:53.536+0530 I CONTROL [initandlisten] ** WARNING:  /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 
2015-04-03T13:37:53.536+0530 I CONTROL [initandlisten] **  We suggest setting it to 'never' 
2015-04-03T13:37:53.536+0530 I CONTROL [initandlisten] 
2015-04-03T13:37:53.537+0530 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 
2015-04-03T13:37:53.537+0530 I CONTROL [initandlisten] **  We suggest setting it to 'never' 
2015-04-03T13:37:53.537+0530 I CONTROL [initandlisten] 

回答

12

使用root权限在/etc/rc.local文件中的exit 0前面添加以下行做了这个魔术。保存文件后重新启动操作系统。然后警告消失在mongo shell中。

来源:MongoDB的文档(http://docs.mongodb.org/manual/reference/transparent-huge-pages/#transparent-huge-pages-thp-settings

if test -f /sys/kernel/mm/transparent_hugepage/khugepaged/defrag; then 
echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag 
fi 
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then 
echo never > /sys/kernel/mm/transparent_hugepage/defrag 
fi 
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then 
echo never > /sys/kernel/mm/transparent_hugepage/enabled 
fi 
+3

当前(= 2015/09)的官方MongoDB文档有一些不同的使用方式(不是使用/etc/rc.local而是专用的启动脚本),请查看http://docs.mongodb.org/master/tutorial/transparent-huge-pages /这在Ubuntu 14上适用于我。 – hgoebl 2015-09-19 11:16:01

+0

我试过在官方文档中建议的方式,它对我没有用(去图)。不过,把这个放在rc.local里就行了。 是否有任何使用rc.local代替的缺点? – 2016-07-26 09:13:25

+0

rc.local文件由操作系统在每次启动后在最后一个运行级别执行,这意味着在操作系统启动所有进程和服务后运行。我发现使用它没有缺点 – 2016-08-13 02:53:23

0

好像很多人都有同样的问题。您可以在MongoDB documentation中找到答案,或者您可以查看StackOverflow上提出的类似问题。

有人建议在控制台sudo service mongod restart中输入,这对他们有效。

+1

继MongoDB的文档,帮我解决了问题 – 2015-04-03 10:08:43

+0

高兴你解决它。将其中一个答案标记为正确。谢谢。 – 2015-04-03 18:20:26

6

由于透明巨大页面(THP)设置,弹出这些警告。

official MongoDB documentation指出:

然而,THP已知下数据库工作负载, 趋向于具有稀疏,而不是连续的存储器访问模式 表现不佳。您必须在用于运行MongoDB实例的Linux机器上禁用THP以确保最佳性能。

有StackOverflow上类似thread在这里你可以找到建议更新mongod.conf文件,以便覆盖由MongoDB的指示的THP属性的可能的解决方案。

+0

帮助MongoDB文档。谢谢 – 2015-04-03 10:10:49