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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 关于mongoose连接mongodb重复访问报错的解决办法

    具体代码如下所示: var express = require('express'); var mongoose = require('mongoose'); var router = express.Router(); var Person = mongoose.model('Person',{ id:Number, name:String }); /*新增*/ router.get('/insert', function(req, res){ var student = new Person

  • perl操作MongoDB报错undefined symbol: HeUTF8解决方法

    因为shell操作mongo比较麻烦,只好尝试使用perl操作mongo,perl需要操作mongodb必须先安装相应的驱动,大部分人使用cpan安装,个人觉得太麻烦,使用cpanm安装perl模块. 复制代码 代码如下: # cpanm MongoDB --> Working on MongoDB Fetching http://www.cpan.org/authors/id/F/FR/FRIEDO/MongoDB-0.702.1.tar.gz ... OK Configuring Mongo

  • NodeJS连接MongoDB数据库时报错的快速解决方法

    今天第一次尝试连接MongoDB数据库,具体步骤也很简单. 首先,通过NodeJS运行环境安装MongoDB包,进入要安装的目录,执行语句 npm install mongodb安装成功后,通过如下语句测试与数据库建立连接几关闭数据库 var mongo = require('mongodb'); var host = "localhost"; var port = mongo.Connection.DEFAULT_PORT; //创建MongoDB数据库所在服务器的Server对象

  • MongoDB添加仲裁节点报错:replica set IDs do not match的解决方法

    背景: 由于历史原因,某个MongoDB副本集只有一主一从双节点,无法满足自动故障转移要求,需要配置一个仲裁节点. 原有节点192.168.10.20:27017,192.168.10.21:27017,现在准备在20上配置一个新节点27018当做仲裁 在当前主节点上执行 repset:PRIMARY> cfg={_id:"repset", members:[{_id:0, host:'192.168.10.20:27017', priority:1},{_id:2, host:

  • MongoDB启动报错 28663 Cannot start server

    今天学习mongoDB的时候,启动总是失败,搜了好久找到这个文档解决了问题,是引擎的问题,具体如下: 启动MongoDB服务 进入安装目录的bin目录 在CMD中执行: mongod --dbpath=数据存放目录这里可以在任何位置建立一个文件夹 有可能在安装过程中出现问题,比如提示 28663错误,则是引擎不适合MONGODB 需要在启动的时加上 -storageEngine=mmapv1 MongoDB学习笔记:28663 Cannot start server. The default s

  • 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: /data

  • IdeaGo启动报错Failed to create JVM的问题解析

    [内容]: 问题情况 出现之前做了什么 出错之前通过这个功能增加了个错误的vm参数:-agent:xxx.jar 怎么办? 百度了一圈,都是让删掉:C盘\用户\用户名\.IntelliJIdea2019.3\config\idea64.exe.vmoptions 然而,我这并没有这个文件.百思不得其解,重装等各种方式都试过还是不能用. 思考之: 1.这明显是一个用户下的配置文件,因此肯定是配置文件使用到了用户级别的,改idea下的配置文件肯定是没用的. 2.明显是因为我修改了VM 参数导致的,网

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

    解决 1. 先检查自己的配置信息,如若一切无误后,则使用管理员模式开启cmd,不要直接打开cmd. 2. 然后在cmd中转跳至自己MongoDB的bin目录,使用我的举例是: cd "C:\Program Files\MongoDB\Server\3.4\bin" 3. 然后cmd写入服务 mongod --dbpath "D:\MongodbData\data" --logpath "D:\MongodbData\logs\mongodb.log&quo

  • Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)

    假设我们有一段程序,从 Redis 中读取数据,解析以后提取出里面的 name 字段: import json import redis client = redis.Redis() def read(): while True: data = client.lpop('info') if data: yield json.loads(data) else: break def parse(): for data in self.read(): print(data['name']) if __

  • Navicat远程连接MongoDB最全实现方法以及报错解决

    目录 MongoDB简介 MongoDB的安装 Navicat远程连接MongoDB 总结 MongoDB简介 MongoDB是一个开源.高性能.支持海量数据存储的文档型数据库. 是NoSQL数据库产品中的一种,是最像关系型数据库(MySQL)的非关系型数据库 数据存储量较大,甚至是海量 对数据读写的响应速度要求较高 某些数据安全性要求不高,可以接受一定范围内的误差 MongoDB的安装 使用docker安装MongoDB: docker pull mongo docker run --name

  • 线上MYSQL同步报错故障处理方法总结(必看篇)

    前言 在发生故障切换后,经常遇到的问题就是同步报错,数据库很小的时候,dump完再导入很简单就处理好了,但线上的数据库都150G-200G,如果用单纯的这种方法,成本太高,故经过一段时间的摸索,总结了几种处理方法. 生产环境架构图 目前现网的架构,保存着两份数据,通过异步复制做的高可用集群,两台机器提供对外服务.在发生故障时,切换到slave上,并将其变成master,坏掉的机器反向同步新的master,在处理故障时,遇到最多的就是主从报错.下面是我收录下来的报错信息. 常见错误 最常见的3种情

  • win10 oracle11g安装报错问题集合 附解决方法

    本文实例为大家分享了oracle11g安装报错的原因,和对应的解决方法,供大家参考,具体内容如下 注册ocx时出现ole初始化错误或OCX加载错误 问题原因:安装文件不能放在包含空格的文件夹名字中 解决办法:oracle安装的时候最好安装在盘符的根目录下,不要使用中文 ora-00922(缺少或无效选项) 问题原因:配置管理员密码时,采用了数字开头的密码 解决办法:将密码改为英文开头(配置密码时,需要数字.大写英文.小写英文) [ins-32025]所选安装与指定oracle主目录中已安装软件冲

随机推荐