mongoDB启动前的系统设置,解决部分Warning问题

Posted 月影舞华

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongoDB启动前的系统设置,解决部分Warning问题相关的知识,希望对你有一定的参考价值。

1、多核心系统资源分配问题

2017-10-13T17:57:02.650+0800 I CONTROL [initandlisten] ** WARNING: You are running on a NUMA machine.
2017-10-13T17:57:02.650+0800 I CONTROL [initandlisten] ** We suggest launching mongod like this to avoid performance problems:
2017-10-13T17:57:02.650+0800 I CONTROL [initandlisten] ** numactl --interleave=all mongod [other options]

就像提示中写的一样,启动脚本写成如下即可:

numactl --interleave=all /path/to/mongod --config /path/to/mongodb.conf

2、大内存页问题

2017-10-13T17:57:02.650+0800 I CONTROL [initandlisten]
2017-10-13T17:57:02.650+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is ‘always‘.
2017-10-13T17:57:02.650+0800 I CONTROL [initandlisten] ** We suggest setting it to ‘never‘
2017-10-13T17:57:02.650+0800 I CONTROL [initandlisten]
2017-10-13T17:57:02.650+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is ‘always‘.
2017-10-13T17:57:02.650+0800 I CONTROL [initandlisten] ** We suggest setting it to ‘never‘

 我们cat一下上面两个文件,发现内容是“[always] madvise never”,我们需要根据提示将其改为never,但是这项设置不是很好改,所以一个比较简单的解决方案就是开机时将其修改了,并不改变默认配置。而且对此文件的修改需要在root用户下进行,直接在启动脚本中sudo -S是不行的。于是解决方案如下: 

sudo vim /etc/rc.local

在后面加入如下两句
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

3、bonus

  记得把/etc/security/limits.conf中的nofile改大,不然1024的nofile肯定会因为文件打开过多出现系统问题的。

  前两个warning仅仅会导致性能出现问题,而第三个则会导致系统错误。

4、其他的Access Control warning就不用管了

以上是关于mongoDB启动前的系统设置,解决部分Warning问题的主要内容,如果未能解决你的问题,请参考以下文章

Mongodb 4.0服务启动不了

Windows8系统下设置Mongodb开机启动

在windows下把Mongodb设置系统服务

window系统之mongoDB安装,启动及如何设置为windows服务(总结)

安装MongoDB启动时报错‘发生系统错误2’的解决办法

安装mongodb后服务启动不了请问怎么解决