mongodb systemd 修改dbpath 相关问题的解方法

实际上网上大家搜索关于mongo 启动异常的问题,无非是异常启动的,但是如果使用的是rpm 包安装的同时修改了dbpath 可能会
碰到一些其他的问额,主要原因如下

  • selinux
  • iptables
  • 文件夹权限

解决方法

  • 权限的问题
    chow 到mongod 账户,相对比较简单了,可能还会有文件夹不存在的,创建就可以了
  • 因为selinux 引起的
    这个的就比较多了,最简单的方法就是禁用seliux
    参考
 
vim /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled

额外的几个问题

  • transparent_hugepage
    推荐解决方法,可以通过profile 解决,参考(当然也可以通过rc.local 解决)
 
vim /etc/profile
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
  • numa 问题
    方法很多,有禁用的,需要修改内核参数(不推荐)
 
/etc/default/grub
添加:
GRUB_CMDLINE_LINUX=" 。。。。 transparent_hugepage=never numa=off"
grub2-mkconfig -o /boot/grub2/grub.cfg
reboot

使用numactl 解决(注意需要修改mongo 的systemd 文件,以及安装numactl)

yum install -y numactl 
vim /usr/lib/systemd/system/mongod.service
ExecStart=/usr/bin/numactl --interleave=all /usr/bin/mongod $OPTIONS
  • ulimit 相关的
    比较简单,推荐的是全局配置/etc/security/limits.conf 文件
 
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535

参考资料

https://www.patricia-anong.com/blog/2017/5/16/installing-mongodb-34-on-rhel-7centos-7