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

 更新时间:2020年12月30日 11:59:19   作者:arroganceee  
这篇文章主要介绍了Mongodb 崩溃报错 Too many open files的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

在项目实际使用过程中,客户反馈能打开网页但无法登陆,第一时间感觉到应该是数据库服务器挂了,于是查看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

在这里插入图片描述

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

在这里插入图片描述

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

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

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

在此配置文件中写入:

* soft nofile 65536
* hard nofile 65536

在这里插入图片描述

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

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

在这里插入图片描述

2,查看对应pid limits:

cat /proc/41814/limits

在这里插入图片描述

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

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

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

在这里插入图片描述

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

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

相关文章

  • MongoDB为什么比Mysql快原理解析

    MongoDB为什么比Mysql快原理解析

    这篇文章主要为大家介绍了MongoDB为什么比Mysql快原理解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 解决net start MongoDB 报错之服务名无效的问题

    解决net start MongoDB 报错之服务名无效的问题

    这篇文章主要介绍了解决net start MongoDB 报错之服务名无效的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 剖析后OpLog订阅MongoDB的数据变更就没那么难了

    剖析后OpLog订阅MongoDB的数据变更就没那么难了

    这篇文章主要为介绍了OpLog订阅MongoDB的数据变更,希望读完本文后让你对OpLog订阅MongoDB的数据变更不在头疼,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-02-02
  • MongoDB如何查询耗时记录的方法详解

    MongoDB如何查询耗时记录的方法详解

    查询操作是我们日常操作数据库经常会遇到的一个功能,下面这篇文章主要给大家介绍了关于MongoDB如何查询耗时记录的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • Mongodb聚合函数count、distinct、group如何实现数据聚合操作

    Mongodb聚合函数count、distinct、group如何实现数据聚合操作

    Mongodb中自带的基本聚合函数有三种:count、distinct和group。下面我们分别来讲述一下这三个基本聚合函数及如何实现数据聚合操作,感兴趣的朋友一起学习吧
    2016-05-05
  • mongodb中ObjectId和ObjectIdr实现

    mongodb中ObjectId和ObjectIdr实现

    本文主要介绍了mongodb中ObjectId和ObjectIdr实现
    2023-12-12
  • MongoDB 3.4配置文件避免入坑的注意事项

    MongoDB 3.4配置文件避免入坑的注意事项

    最近在配置mongodb的时候遇到了一些问题,现总结出来方便以后需要或同样遇到该问题的朋友们参考,下面这篇文章主要给大家介绍了关于MongoDB 3.4配置文件时避免入坑的两个注意事项,需要的朋友们下面随着小编来一起学习学习下吧。
    2017-09-09
  • mongodb 3.2.5安装详细过程

    mongodb 3.2.5安装详细过程

    这篇文章主要介绍了mongodb 3.2.5安装过程详细记录,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,感兴趣的朋友一起看看吧
    2016-10-10
  • mongodb root用户创建数据库提示not master的解决

    mongodb root用户创建数据库提示not master的解决

    这篇文章主要介绍了mongodb root用户创建数据库提示not master的解决方案,具有很好的参考价值,希望对大家有所帮助。
    2023-02-02
  • Mongodb数据库两种启动方法小结

    Mongodb数据库两种启动方法小结

    MongoDB是一种开源的服务器端NoSQL数据库管理系统,它提供了一种灵活的框架,可以快速地存储、处理和管理大量的数据,这篇文章主要给大家介绍了关于Mongodb数据库两种启动方法的相关资料,需要的朋友可以参考下
    2023-12-12

最新评论