centos 7
периодический стал падать сервер. постоянно пишет nginx ошибка 500
залез в логи nginx’a – а там вот это:
2018/04/10 19:20:28 [crit] 638#638: accept4() failed (23: Too many open files in system)
стопицот раз.
вот подумалось, не эта ли хрень является причиной постоянного падения сервака…
Посмотрите какой текущий лимит у вас установлен в файле
1 |
nano /etc/systemd/system/nginx.service.d/nofile.conf |
Если такой лимит:
1 2 |
[Service] LimitNOFILE=16384 |
То нужно увеличить его до:
1 2 |
[Service] LimitNOFILE=65535 |
И за тем перезапустите nginx
1 2 |
systemctl daemon-reload systemctl restart nginx |
Проверьте увеличился ли размер.
1 |
ps axf | grep nginx |
В этом списке ищем nginx: master process:
1 2 |
3410 pts/0 S+ 0:00 | \_ grep --color=auto nginx 3826 ? Ss 0:38 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf |
У нас это процесс по id 3826
1 |
cat /proc/3826/limits |
Получаем вывод Max open files 65535 65535 files:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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 203668 203668 processes Max open files 65535 65535 files Max locked memory 65536 65536 bytes Max address space unlimited unlimited bytes Max file locks unlimited unlimited locks Max pending signals 203668 203668 signals Max msgqueue size 819200 819200 bytes Max nice priority 0 0 Max realtime priority 0 0 Max realtime timeout unlimited unlimited us |
Далее
1 |
nano /etc/security/limits.d/20-nproc.conf |
заменить на
1 2 3 4 5 6 |
# Default limit for number of user's processes to prevent # accidental fork bombs. # See rhbz #432903 for reasoning. * soft nproc 16384 root soft nproc unlimited |