centos 7

периодический стал падать сервер. постоянно пишет nginx ошибка 500
залез в логи nginx’a – а там вот это:
2018/04/10 19:20:28 [crit] 638#638: accept4() failed (23: Too many open files in system)
стопицот раз.

вот подумалось, не эта ли хрень является причиной постоянного падения сервака…

Посмотрите какой текущий лимит у вас установлен в файле

nano /etc/systemd/system/nginx.service.d/nofile.conf

 

Если такой лимит:

[Service]
LimitNOFILE=16384

 

То нужно увеличить его до:

[Service]
LimitNOFILE=65535

 

И за тем перезапустите nginx

systemctl daemon-reload
systemctl restart nginx

 

Проверьте увеличился ли размер.

ps axf | grep nginx

 

В этом списке ищем nginx: master process:

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

cat /proc/3826/limits

 

Получаем вывод Max open files 65535 65535 files:

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

Далее

nano /etc/security/limits.d/20-nproc.conf

заменить на

# 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

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.