Назад | Перейти на главную страницу

Apache - внезапное «слишком много открытых файлов»

Итак, у нас есть сервер apache, работающий в Linux без проблем.

Вчера мы перезапустили сервер, и с тех пор мы заметили, что количество открытых файлов процессами apache продолжает расти, пока сервер через несколько часов не смог получить запросы с ошибками ниже, заполнив журнал ошибок:

(24)Too many open files: file permissions deny server access: /var/www/html/*X*
(24)Too many open files: /var/www/html/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable

Мы проверили открытые файлы и заметили, что они действительно достигают предела (установленного на 4096). Мы можем увеличить лимит, но это, вероятно, только увеличит время безотказной работы и не решит проблему, поскольку такое поведение не является нормальным. Никакой лишней нагрузки нет.

И, проверив открытые файлы, мы заметили, что аномально увеличивающиеся открытые файлы - это сокеты unix, то есть lsof -p PID заполнен:

httpd   19848 apache   13u  unix 0xffff880238a63380      0t0   204055 socket
httpd   19848 apache   14u  unix 0xffff8800aa3123c0      0t0   204183 socket
httpd   19848 apache   15u  unix 0xffff880037a0acc0      0t0   204201 socket

Я не являюсь опытным администратором Linux (в настоящий момент администратора нет), поэтому я не уверен, как исследовать проблему дальше.

И да, я ответил на многие связанные вопросы, но ни к чему не пришел.

Обновить Тестирование с ss команда показывает это количество сокетов, как показано ниже:

u_str UNCONN     0      0                                                          * 331727                                                      * 0
u_str UNCONN     0      0                                                          * 331729                                                      * 0
u_str UNCONN     0      0                                                          * 331731                                                      * 0
u_str UNCONN     0      0                                                          * 331733                                                      * 0
u_str UNCONN     0      0                                                          * 331735                                                      * 0