欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Mongodb 崩溃报错 Too many open files的问题解析

程序员文章站 2022-06-24 15:11:26
在项目实际使用过程中,客户反馈能打开网页但无法登陆,第一时间感觉到应该是数据库服务器挂了,于是查看mongodb数据库服务器日志,果不其然挂了。报错信息如下:2020-12-28t13:21:21.7...

在项目实际使用过程中,客户反馈能打开网页但无法登陆,第一时间感觉到应该是数据库服务器挂了,于是查看mongodb数据库服务器日志,果不其然挂了。
报错信息如下:

2020-12-28t13:21:21.731+0800 e storage  [conn2624] wiredtiger error (24) [1609132881:731422][23581:0x7fe157189700], wt_session.create: __posix_directory_sync, 135: /data1/mongodb/data/db/: directory-sync: open: too many open files raw: [1609132881:731422][23581:0x7fe157189700], wt_session.create: __posix_directory_sync, 135: /data1/mongodb/data/db/: directory-sync: open: too many open files
2020-12-28t13:21:21.731+0800 e storage  [conn2624] wiredtiger error (24) [1609132881:731616][23581:0x7fe157189700], wt_session.create: __posix_directory_sync, 151: /data1/mongodb/data/db/collection-1063-1706476241051221735.wt: directory-sync: too many open files raw: [1609132881:731616][23581:0x7fe157189700], wt_session.create: __posix_directory_sync, 151: /data1/mongodb/data/db/collection-1063-1706476241051221735.wt: directory-sync: too many open files
2020-12-28t13:21:21.731+0800 e storage  [conn2624] wiredtiger error (-31804) [1609132881:731651][23581:0x7fe157189700], wt_session.create: __wt_panic, 494: the process must exit and restart: wt_panic: wiredtiger library panic raw: [1609132881:731651][23581:0x7fe157189700], wt_session.create: __wt_panic, 494: the process must exit and restart: wt_panic: wiredtiger library panic
2020-12-28t13:21:21.731+0800 f -        [conn2624] fatal assertion 50853 at src/mongo/db/storage/wiredtiger/wiredtiger_util.cpp 420
2020-12-28t13:21:21.731+0800 f -        [conn2624]

***aborting after fassert() failure

可以看到核心问题就是 too many open files。经查阅相关资料,造成如下问题的原因就是centos7给每个用户默认的同时打开文件的数值为1024,可通过如下配置文件查看:

ulimit -a

Mongodb 崩溃报错 Too many open files的问题解析

其中所有的参数均可修改,那么如何修改open files呢?
在此提供两种方法:
首先查看系统全局参数:

Mongodb 崩溃报错 Too many open files的问题解析

所以我们可以修改的最大值也是174198

具体修改方法一:
新建一个nofile.conf文件:

vi /etc/security/limits.d/nofile.conf

在此配置文件中写入:

* soft nofile 65536
* hard nofile 65536

Mongodb 崩溃报错 Too many open files的问题解析

保存后,需要重启系统,永久有效。

具体修改方法二:(不需要重启,不需要停服务,动态修改
1,查看mongodb pid:

Mongodb 崩溃报错 Too many open files的问题解析

2,查看对应pid limits:

cat /proc/41814/limits

Mongodb 崩溃报错 Too many open files的问题解析

3,可直接编辑以上文件,也可以直接运行命令行:

prlimit --pid 41814 --nofile=65535:65535

4,再次查看,修改成功:

Mongodb 崩溃报错 Too many open files的问题解析

总结:建议双管齐下,都修改了。

到此这篇关于mongodb 崩溃报错 too many open files的问题解析的文章就介绍到这了,更多相关mongodb 报错 too many open files内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!