更新后Mongodb启动警告

hel*_*rld 11 mongodb

我使用了更新了mongodb

sudo apt-get install mongodb-org
Run Code Online (Sandbox Code Playgroud)

mongodb从2.4更新到3.0.我连接到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] 
Run Code Online (Sandbox Code Playgroud)

hel*_*rld 12

使用root权限在/etc/rc.local文件中的出口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
Run Code Online (Sandbox Code Playgroud)

  • 当前(= 2015/09)官方MongoDB文档采用略有不同的方式(不使用/etc/rc.local但是使用专用的启动脚本),请查看http://docs.mongodb.org/master/tutorial/ transparent-huge-pages /这对我在Ubuntu 14上有用. (3认同)

vla*_*zam 6

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

正如官方MongoDB文档中所述:

但是,众所周知,THP在数据库工作负载下表现不佳,数据库工作负载往往具有稀疏而非连续的内存访问模式.您必须在用于运行MongoDB实例的Linux计算机上禁用THP以确保最佳性能.

StackOverflow上有一个类似的线程,您可以在其中找到建议更新mongod.conf文件的可能解决方案,以便覆盖MongoDB指示的THP属性.