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