mongodb使用中遇到的问题
Invariant failure: ret resulted in status UnknownError:24:Too many open files at ***
错误原因为打开文件过多的错误,即“句柄数超出系统显示”。
1.需要更改一下系统的句柄数:
查看一下系统目前设置的句柄数 open files 对应的即为 当前系统的最大句柄数,目前这台服务器为1024,
ulimit -n 2048 #设置句柄数为2048 但是重启后会重置
2.在mongoDB的bin路径下,重新启动 mongodb服务
./mongod -f /etc/mongodb/bin/mongodb.conf
3.检查mongoDB服务是否启动:
ps -def | grep mongod
永久设置方法
修改linux系统参数,在vi /etc/security/limits.conf 添加
* soft nofile 65536
* hard nofile 65536
修改以后保存,注销当前用户,重新登录,执行ulimit -a ,ok ,参数生效了
[root@localhost ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 256600
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 256600
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited