Portanto, temos um servidor apache em execução no Linux sem problemas.
Ontem reiniciamos o servidor e, desde então, notamos que o número de arquivos abertos pelos processos do apache continua aumentando até que o servidor após algumas horas falhou ao receber solicitações com erros abaixo preenchendo o log de erros:
(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
Verificamos os arquivos abertos e percebemos que ele está realmente atingindo o limite (que é definido como 4096). Podemos aumentar o limite, mas isso provavelmente aumentará o tempo de atividade e não resolverá o problema, pois esse comportamento não é normal. Não há carga extra.
E verificando os arquivos abertos, notamos que os arquivos abertos crescentes e anormais são unix socket, ou seja, lsof -p PID está cheio de:
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
Eu não sou um administrador experiente do Linux (o administrador não está presente no momento), então não estou certo de como investigar melhor o assunto.
E sim, passei por muitas perguntas relacionadas, mas não cheguei onde.
Atualizar
Testes com o comando ss
revelam que muitos soquetes são os seguintes:
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
Tags linux apache-2.2 unix socket