Apache2 서버가 응답을 중지합니다

Apache2 서버가 응답을 중지합니다

어디를 더 깊이 파헤칠지에 대한 제안을 찾고 있습니다.

곧 Apache2 서버는 시작된 후 2~15시간 후에 요청 처리를 중지합니다. 결과적으로 나는 service apache2 restart하루의 반씩을 해야 한다.

긴 버전:

  1. 저는 전용 서버(Ubuntu 13.04)에서 몇 개의 웹사이트(Apache 2.2.22, 2013년 7월 12일 구축)를 운영하고 있습니다.
  2. Apache2 서버는 반년 넘게 잘 작동했지만 이제 갑자기 Apache 프로세스가 다시 시작될 때까지 모든 웹 사이트(약 5개 사이트 포함)에서 요청 처리가 중단됩니다.
  3. 해당 문제와 관련하여 /var/log/apache에서 비정상적인 로그를 찾을 수 없습니다.
  4. service apache2 status프로세스가 실행 중임을 보고합니다.

귀하의 제안을 듣고 기뻐할 것입니다. 제 상황에서 어떻게 해야 할까요?

업데이트:

달리기 netstat -an | grep 80:

tcp6       0      0 :::80                   :::*                    LISTEN
tcp6     325      0 SERV_IP:80       IP_A:35514     CLOSE_WAIT
tcp6     332      0 SERV_IP:80       IP_B:34198     CLOSE_WAIT
tcp6     379      0 SERV_IP:80       IP_C:57859     CLOSE_WAIT
tcp6       0      0 SERV_IP:80       IP_A:35060     CLOSE_WAIT
tcp6     360      0 SERV_IP:80       IP_A:38481     CLOSE_WAIT
tcp6     466      0 SERV_IP:80       IP_B:56324     CLOSE_WAIT
tcp6     361      0 SERV_IP:80       IP_A:53466     CLOSE_WAIT
tcp6       1      0 SERV_IP:80       IP_A:38102     CLOSE_WAIT
tcp6     196      0 SERV_IP:80       IP_E:58125     ESTABLISHED

그리고 이와 같은 추가 항목은 약 150개입니다.

ps aux | grep apache:

root      2968  0.0  0.0 452240 21116 ?        Ss   16:08   0:01 /usr/sbin/apache2 -k start
www-data  5217  0.0  0.0 463584 23820 ?        S    17:04   0:03 /usr/sbin/apache2 -k start

이후 라인(www-data)이 약 120개 있으므로 아파치 프로세스가 120개라고 가정합니까?

strafeApache2 루트 프로세스에서 사용 :

 sudo strace -f -p 2968
Process 2968 attached - interrupt to quit
select(0, NULL, NULL, NULL, {0, 264394}) = 0 (Timeout)
wait4(-1, 0x7fff6d157a6c, WNOHANG|WSTOPPED, NULL) = 0
select(0, NULL, NULL, NULL, {1, 0})     = 0 (Timeout)
wait4(-1, 0x7fff6d157a6c, WNOHANG|WSTOPPED, NULL) = 0

www-data 프로세스 중 하나에서 사용:

sudo strace -f -p 8554
Process 8554 attached - interrupt to quit
flock(40, LOCK_EX

와, 아파치 프로세스가 멈춰서 최대 연결 제한을 초과하면 새 인스턴스 생성이 중지되는 것 같습니다. 그런데 왜 그들은 막히는 걸까요?

htop, iotop, jnettop은 어떤 이상 현상도 보고하지 않습니다. (과부하 없음)

업데이트 2: 지난 이틀 동안 서버가 더 이상 충돌하지 않습니다. 그래서 더 많은 정보를 얻을 수 없습니다.. 대신 귀하의 도움에 감사하고 답변을 받아들입니다. 더 많은 정보가 제공되면 더 나은 구성의 본문이 포함된 새 질문에 대한 링크를 남길 것입니다. 감사해요

답변1

"service apache2 status" 보고서에 관계없이 ps aux를 수행할 때 Apache 프로세스가 표시됩니까?

문제가 발생하면 netstat -n을 수행할 수 있습니까? 파일 설명자와 같은 리소스가 부족하거나 열려 있는 연결이 너무 많을 수 있습니다.

문제가 발생하는 동안 CPU 사용률이 높습니까? 시스템에 메모리가 부족하여 스래싱이 발생하는 것은 아닐까요?

http 서버가 연결 거부 또는 연결 시간 초과로 응답합니까?

후자의 경우 strace -f -p [apachepid]를 수행하는 것이 좋습니다. 그러면 어떤 시스템 호출이 요청을 차단하고 있는지 알아낼 수 있습니다. 전자의 경우 아마도 아파치가 충돌했을 것입니다.

Tomcat이나 다른 애플리케이션 서버를 프록시합니까, 아니면 일반 정적 HTML을 제공합니까?

인증을 구성했습니까? 예를 들어 인증 레이어에 문제가 있을 수 있습니다.

업데이트:

두 번째 strace에서 나는 이 무리를 봅니다(40,LOCK_EX 어쩌면 프로세스가 어딘가에서 독점 잠금을 얻으려고 시도합니까? lsof -n -p 8554(또는 pid가 무리를 시도하는 모든 것)를 수행하고 잠그려고 하는 파일을 확인할 수 있습니까(40 파일 설명자입니다) "ls /proc/8554/fd"를 사용할 수도 있습니다.

관련 정보