Apache 서버는 요청 백로그와 너무 많은 시간을 기다리기 때문에 몇 분 동안 멈추는 경우가 있습니다.

Apache 서버는 요청 백로그와 너무 많은 시간을 기다리기 때문에 몇 분 동안 멈추는 경우가 있습니다.

프로덕션 서버가 있습니다아파치 2.4.38존재하다데비안 10때로는 웹 서버가 제대로 작동하지 않고 수신한 HTTP 요청에 대해 즉시 응답을 보내지 않습니다(모든 가상 호스트 요청은 역방향 프록시 대상에 관계없이 완전히 응답하지 않습니다). 다시 시작한 후 즉시 자체적으로 복구되거나 일정 시간(몇 초 또는 몇 분)이 지나면 갑자기 많은 양의 HTTP 응답을 보내기 시작합니다.

CPU와 RAM 사용량은 좋아 보이지만 그렇지 않습니다. 정확히 무슨 일이 일어났는지, 왜 그런 일이 일어났는지 모르겠습니다. mpm_event.conf 설정도 변경했는데 현재 다음과 같이 설정되어 있습니다.

<IfModule mpm_event_module>
        StartServers                     2
        ServerLimit 100
        MinSpareThreads          25
        MaxSpareThreads          75
        ThreadLimit                      128
        ThreadsPerChild          25
        MaxRequestWorkers         400
        MaxConnectionsPerChild   5000
</IfModule>

Apache 오류 로그에 몇 가지 오류가 표시됩니다.

[Tue Mar 22 19:53:38.339703 2022] [core:error] [pid 3375:tid 140244229465216] AH00046: child process 29595 still did not exit, sending a SIGKILL
[Tue Mar 22 19:53:38.339777 2022] [core:error] [pid 3375:tid 140244229465216] AH00046: child process 26190 still did not exit, sending a SIGKILL
[Tue Mar 22 19:53:38.339825 2022] [core:error] [pid 3375:tid 140244229465216] AH00046: child process 27903 still did not exit, sending a SIGKILL
[Tue Mar 22 19:53:38.339889 2022] [core:error] [pid 3375:tid 140244229465216] AH00046: child process 16907 still did not exit, sending a SIGKILL
[Tue Mar 22 19:53:38.339933 2022] [core:error] [pid 3375:tid 140244229465216] AH00046: child process 26880 still did not exit, sending a SIGKILL
[Tue Mar 22 19:53:38.340000 2022] [core:error] [pid 3375:tid 140244229465216] AH00046: child process 15384 still did not exit, sending a SIGKILL
[Tue Mar 22 19:53:38.340041 2022] [core:error] [pid 3375:tid 140244229465216] AH00046: child process 24971 still did not exit, sending a SIGKILL
[Tue Mar 22 19:53:38.340091 2022] [core:error] [pid 3375:tid 140244229465216] AH00046: child process 9780 still did not exit, sending a SIGKILL
[Tue Mar 22 19:53:38.340130 2022] [core:error] [pid 3375:tid 140244229465216] AH00046: child process 26317 still did not exit, sending a SIGKILL

이 문제를 해결하려면 어떤 설정을 변경할 수 있습니까?

답변1

작업자 프로세스에 문제가 있는 것 같습니다. 그 나쁜. 일부 플러그인이 중단되거나 하드웨어 문제가 발생할 수 있습니다. 아파치에서 버그를 발견할 가능성이 적습니다.

특히 저장과 관련하여 오류가 있는지 합계를 dmesg확인 합니다 .systemctl

이 간단한 검사로 결과가 나오지 않으면 gdbapache2 프로세스에 연결하고 종료하지 않고 하위 프로세스가 정지되는 위치를 정확히 확인하십시오. 어쩌면 이름을 확인하려고 시도하는 플러그인일 수도 있지만 임의로 확인할 수는 없나요? 안정적으로 액세스할 수 없는 NFS의 파일에 액세스하고 있습니까? 여기서는 알기 어렵습니다.

관련 정보