1
huigeer 2016-10-26 20:56:55 +08:00 via Android
iis 日志导出,分析访问日志路由和 ip
|
2
cxbig 2016-10-26 21:06:08 +08:00
僵尸进程,我司有类似情况, Linux 系统,写了一个脚本从 log 里统计特定参数,达到阈值自动重启 php-fpm ,并清理 pid 小于新的主进程的所有 worker 。
|
3
vibbow 2016-10-26 21:14:28 +08:00
LZ 你 APP POOL 的 max instance 设置的多少
|
4
abcbuzhiming OP @cxbig 你们没有分析为啥会产生僵尸进程?
|
5
vibbow 2016-10-26 22:06:24 +08:00
@abcbuzhiming 他们是 linux......
|
6
cxbig 2016-10-26 22:15:15 +08:00
@abcbuzhiming 很粗暴的解决方案,暂时没有深挖。
|
7
enenaaa 2016-10-26 22:21:15 +08:00 via Android
如果是死循环,那 cpu 占用应该很高。如果 cpu 空闲,,看一下网络连接情况,是不是一直存在空闲连接。
|
8
abcbuzhiming OP @vibbow 最大工作进程,设置的为 2.不知道为啥就能蹦出那么多来
|
9
abcbuzhiming OP @enenaaa 很奇怪的是,这些进程 CPU 占用都不是很高,普遍都是 1-3%晃悠。我们也想不通为啥
|
10
enenaaa 2016-10-26 22:27:27 +08:00 via Android
@abcbuzhiming 可能是某些蜘蛛类客户端长时间扫描你的网站,或者它们恶意保持连接
|
11
abcbuzhiming OP @enenaaa 可是我的最大进程只是 2 啊,就算是保持连接,难道 php-cgi 不会自动退出吗?
|
12
vibbow 2016-10-26 23:15:22 +08:00
@abcbuzhiming php-cgi 在超过 实例最大请求数 之前,一般情况不会自动退出
|
13
vibbow 2016-10-26 23:15:46 +08:00
@abcbuzhiming 不过为什么是 2 ? fastcgi 默认设置都是 4 的啊...
|
14
vibbow 2016-10-26 23:16:44 +08:00
还有 LZ 你的活动超时 和 空闲超时 都是多久?
|
15
abcbuzhiming OP @vibbow 空闲超时 20 分钟,活动超时 60 秒
|
16
abcbuzhiming OP 我操我发现这些 php-cgi.exe 真虎啊,我在 IIS 的程序池手动回收他们都不退出的?
|
17
vibbow 2016-10-27 01:04:39 +08:00
@abcbuzhiming 记得看过 IIS 的推荐配置,这两项均是 300 秒...
|
18
vibbow 2016-10-27 01:05:09 +08:00
@abcbuzhiming 你用 process explorer 看一下进程树,看 php 的进程还在不在 w3wp 下面
|
19
realpg 2016-10-27 08:45:57 +08:00
老老实实用 linux 就完了……
|
20
ijustdo 2016-10-27 10:22:38 +08:00
linux 下 我一般这么干 找到占用 cpu 最高的 phpcgi 然后用 lsof 和 strace 跟踪
HPHP_PID=`ps aux|grep "php-fpm"|grep -v 'grep'|awk '{print $3" " $2}'|sort|tail -n 1|awk '{print $2}'` if [ -n HPHP_PID ]; then lsof -p ${HPHP_PID} > "/home/lsof_${HPHP_PID}" strace -s 256 -p ${HPHP_PID} > "/home/starce_${HPHP_PID}" fi 看跟踪结果 再解决 |