我的MongoDB数据库在加载时遇到问题,出现以下错误垃圾邮件日志:
[initandlisten] pthread_create failed: errno:11 Resource temporarily unavailable [initandlisten] can't create new thread, closing connection
我得出的结论是,我需要提高1024的“ulimit -u”或“Max processes”设置,并且在networking前端启动的情况下可能会超过这个设置(不确定如何检查) 。
我编辑了/etc/security/limits.conf来添加最后两行(前两个已经在那里):
* soft nofile 350000 * hard nofile 350000 * soft nproc 30000 * hard nproc 30000
然后,我重新启动系统(顺便说一句,我应该这样做,或者应该重新启动Mongo服务吗?)
重新启动后,查看mongod进程的进程限制,似乎忽略了软限制:
$ cat /proc/2207/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes Max data size unlimited unlimited bytes Max stack size 8388608 unlimited bytes Max core file size 0 unlimited bytes Max resident set unlimited unlimited bytes Max processes 1024 30000 processes Max open files 350000 350000 files Max locked memory 65536 65536 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 273757 273757 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us $ whoami mongod $ 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) 273757 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 350000 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 1024 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
我预计根据/etc/security/limits.conf文件,“最大进程”硬限制和软限制都是30000,但是只有硬性限制。
我究竟做错了什么?
我正在AWS EC2上运行Amazon Linux。
bash-4.1$ cat /etc/*-release Amazon Linux AMI release 2012.09
检查文件/etc/security/limits.d/90-nproc.conf,因为这可能会覆盖您的设置。 我去年写了关于这个完全相同的问题http://scott.cm/max-processes-1024-limits-conf/
您可以尝试更改启动mongodb数据库的脚本开始处的ulimit值。
subprocessinheritance调用进程的资源限制。