我正在寻找build议,我应该在哪里深入挖掘。
稍后,Apache2服务器在启动2-15小时后停止服务请求。 因此,我必须做的service apache2 restart每半天service apache2 restart 。
长版本:
service apache2 status报告进程正在运行 听到你的build议会很高兴,在我的情况下我该怎么做。
更新:
运行netstat -an | grep 80 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 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
后面的行中有大约120个(www-data),所以我假设120个apache进程?
在apache2根进程上使用strafe :
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数据过程:
sudo strace -f -p 8554 Process 8554 attached - interrupt to quit flock(40, LOCK_EX
哇,它在我看来好像阿帕奇进程卡住,一旦最大连接限制超过,它停止创build新的实例。 但为什么他们卡住了?
htop,iotop,jnettop不报告任何exception。 (不超载)
UPDATE2:服务器在过去两天不再崩溃。 所以我无法得到更多的信息..相反,我感谢您的帮助,并接受答案。 一旦有更多的信息可用,我会留下一个更好的结构体的新问题的链接。 谢谢
不pipe是什么“服务apache2状态”报告,当你做ps aux时,你看到apache进程吗?
当问题发生时,你可以做一个netstat -n吗? 也许你用尽了一个资源,例如文件描述符,你可能有太多的开放连接。
在这个问题你有很高的CPU利用率? 也许系统内存不足,是颠簸?
http服务器响应连接被拒绝或连接超时?
在后一种情况下,我会build议做strace -f -p [apachepid],你可能会发现哪个系统调用阻塞了请求。 在前者中,可能apache已经崩溃了。
你代理Tomcat或其他应用程序服务器,或者你提供普通的静态HTML?
你configuration了authentication? 例如,可能是身份validation层出了问题
更新:
在第二个strace中,我看到了这个群(40,LOCK_EX也许这些进程试图获得一个排它锁吗?你可以做lsof -n -p 8554(或任何pid尝试群集),看看它试图locking哪个文件(40是文件描述符),也可以是“ls / proc / 8554 / fd”