netstat查看php-cgi, 大量keepalive, 求大侠指点
我的nginx服务器经常出现502,查看nestat显示结果如下:
]# netstat -anpo | grep cgi | more
tcp 0 0 60.x.x.x:53494 60.x.x.x:3306 ESTABLISHED 17429/php-cgi keepalive
(2797.21/0/0)
tcp 0 0 60.x.x.x:44817 60.x.x.x:3306 ESTABLISHED 17293/php-cgi keepalive
(1768.01/0/0)
tcp 0 0 60.x.x.x:57595 60.x.x.x :3306 ESTABLISHED 17282/php-cgi keepalive
(2444.42/0/0)
tcp 0 0 60.x.x.x:58649 60.x.x.x:3306
#netstat -anpo |grep cgi |grep 3306 | wc -l 显示结果如下:
41
而且我的linux服务器链接mysql服务器特别慢, 但是另一台win 2003 链接mysql却很快 fpm数量不够用了吧 PHP CGIKeepAlive 时间太长了, 可以考虑设置短一点, 另外MySQL数据库 对同一个IP 不同端口 的链接数量也是有限制的, 根据你的情况,很多CGI 进程可能被阻塞了 用free看看内存消耗情况,用top查看进程和cpu占用情况,然后用
ps -A --sort -rss -o comm,pmem,pcpu |uniq -c |head -15 查看消耗内存的进程
如果你是用nginx,应该是用php-cgi的,一般情况是php-fpm.conf 设置里面的max_children的数量设置过大导致的,可以设小一点看看 页面移步请求不多可以吧 keepalive 关了
可以把时间调短些 你的502或许和这些数据库的长连接没啥关系,
另外看一下数据库的进程执行情况,是否有堵塞的慢查询。
页:
[1]