내 MongoDB 데이터베이스가로드 중에 문제가 발생하여 다음과 같은 오류가 로그를 스팸으로 표시했습니다.
[initandlisten] pthread_create failed: errno:11 Resource temporarily unavailable
[initandlisten] can't create new thread, closing connection
1024에있는 "ulimit -u"또는 "Max processes"설정을 높여야한다는 결론에 도달했으며 웹 프런트 엔드가 시작된 경우 사용량이 초과했을 수 있습니다 (확인 방법은 확실하지 않음) .
마지막 두 줄을 추가하기 위해 /etc/security/limits.conf를 편집했습니다 (처음 두 줄은 이미 존재했습니다).
* soft nofile 350000
* hard nofile 350000
* soft nproc 30000
* hard nproc 30000
그런 다음 시스템을 재부팅했습니다 (BTW를 수행 했습니까, 아니면 mongod 서비스를 다시 시작해야합니까?)
재부팅 후 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
2
/etc/security/conf.d/를 보시겠습니까? 때로는 기본 limits.conf에 설정된 내용을 무시하는 파일이 있습니다.
—
dmourati
두마 라티, 고마워, 네 말이 맞아
—
John M