MongoDB 启动报错

刚搬新家,正想试试 MongoDB 的LBS,宿舍电脑使用热点下载速度感人,正好发现服务器宝塔上面可以一键安装 MongoDB,刚刚装好启动就给我4个警告

Server has startup warnings:
2020-09-11T00:04:19.257+0800 I STORAGE [initandlisten]
2020-09-11T00:04:19.257+0800 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2020-09-11T00:04:19.257+0800 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
2020-09-11T00:04:19.491+0800 I CONTROL [initandlisten]
2020-09-11T00:04:19.491+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2020-09-11T00:04:19.491+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2020-09-11T00:04:19.491+0800 I CONTROL [initandlisten]
2020-09-11T00:04:19.491+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2020-09-11T00:04:19.491+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2020-09-11T00:04:19.491+0800 I CONTROL [initandlisten]
2020-09-11T00:04:19.491+0800 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. rlimits set to 7270 processes, 100001 files. Number of processes should be at least 50000.5 : 0.5 times number of files.
2020-09-11T00:04:19.491+0800 I CONTROL [initandlisten]

1、WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine 》 强烈建议使用带WiredTiger存储引擎的XFS文件系统

经查 环境使用的是EXT4文件系统,官方不建议,但不影响使用。无法解决先略过

2、WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.

3、WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.

这两个问题是CentOS7特有的,因为从CentOS7版本开始会默认启用 Transparent Huge Pages(THP)
Transparent Huge Pages(THP)本意是用来提升内存性能,但某些数据库厂商还是建议直接关闭THP(比如说Oracle、MariaDB、MongoDB等),否则可能会导致性能出现下降。

  • 查看THP状态
[root@VM-0-17-centos ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
[root@VM-0-17-centos ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
[root@VM-0-17-centos ~]# 

关闭这两个状态

 echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
 echo "never" > /sys/kernel/mm/transparent_hugepage/defrag

4、soft rlimits too low. rlimits set to 7270 processes, 100001 files. Number of processes should be at least 50000.5 : 0.5 times number of files.
根据提示,用户可获得的进程数过小,我们至少需要将用户可获得的进程数设置为 50000.5 的 0.5 倍 也就是 50000.5 * 1.5 = 75,000.25 我们直接设置 76000 就好了
修改配置文件 /etc/security/limits.conf

vim /etc/security/limits.conf

末尾添加

vim /etc/security/limits.conf
添加一下几行
mongo soft nofile 76000
mongo hard nofile 76000
mongo soft nproc 32000
mongo hard nproc 32000

然后 执行一步 ulimit -u 76000

  • 第一步是永久生效process
  • 第二步是即时当前会话生效process

如果上面这一步设置无效的话,可以试一下下面这个步骤,编辑这个文件夹下的配置文件,名称可能不同,我的文件是20-nproc.conf

vim /etc/security/limits.d/20-nproc.conf

将上面的配置填上,完成效果如下,记得用户名是mongo 不是 mongod

这样就不用重启服务器啦,不然重启之后才会生效

更多关于/etc/security/limits.conf 文件的说明

linux资源限制配置文件是/etc/security/limits.conf;限制用户进程的数量对于linux系统的稳定性非常重要。
limits.conf文件限制着用户可以使用的最大文件数,最大线程,最大内存等资源使用量。

* soft nofile 76000#任何用户可以打开的最大的文件描述符数量,默认1024,这里的数值会限制tcp连接
* hard nofile 76000
* soft nproc  76000#任何用户可以打开的最大进程数
* hard nproc  76000

@student hard nofile 76000
@student soft nofile 4096
@student hard nproc 50  #任何人不能拥有超过50个进程,并且会在拥有30个进程时发出警告
@student soft nproc 30
  • hard和soft两个值都代表什么意思呢?
    soft是一个警告值,而hard则是一个真正意义的阀值,超过就会报错

给TA支持
共{{data.count}}人
人已支持
随笔

PHP rgb颜色互转

2020-9-1 21:14:53

工作日志

如何使用阿里云邮件推送

2020-9-15 11:46:40

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索