网站打不开。 top 看了下 各方面负载都没有明显变化。负载很正常。 查看了下 mrtg 流量也很正常。 但网站就是502. 大概判断是PHP 问题
1 。 查看php cgi 目前并发状况。发现好几百没释放的。。。
netstat -an | grep fcgi.sock
ffffff0254431870 stream 8 0 0 ffffff0229c6bb40 0 0 /tmp/fcgi.sock
ffffff018c66ca50 stream 0 0 ffffff001af7b3b0 0 0 0 /tmp/fcgi.sock
正常情况下 应该是很少的。按照我服务器情况大概是10个以下。如果存在大量的不释放的。一般就是PHP 有阻塞了。
2。接下来做常规检查。查下是否有被DDOS的可能。
查看连接最多的IP。统计以下
netstat -n | grep tcp4 | awk '{print $5}' | awk -F. '{print $1"."$2"."$3"."$4}' | sort | uniq -c | awk '$1>30'
发现 本地连接. 127.0.0.1 特别多。这个也正常,因为这个服务器。 DB MC SPHINX 啥都再里面了。
3。 在查下各参数的并发:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
发现个问题: ESTABLISHED 2219 而 SYN_SENT 2741 为啥
SYN_SENT 会有那么多。十分异常。
统计以下 SYN的各方面
netstat -na|grep SYN|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r +0n
然后 netstat -an | grep SYN_SENT
发现很多SYN请求 127.0.0.1 27017 。 27017 啥端口
继续看下。 sockstat -4l 发现本地并没坚挺27017 端口。
大概问题就找到了。。
接下来。最后一招:
跟踪一个 php 进程,看下是啥问题。 一看就知道
truss -p 2323
从最后打印的信息看出。
原来 mongodb 挂了。。。。。