给fast-cgi方式的php做一个检查脚本

jackxiang 2009-8-5 16:08 | |
http://www.sunnyu.com/?p=93
给fast-cgi方式的php做一个检查脚本

使用fast-cgi方式的php在使用,有时候由于编写的代码问题,使处理代码的php-cgi进程的运行占用很多时间,在将所有活动的 php-cgi 进程都占用后,web服务器对php的请求就失去响应了。

通过命令查看服务器上一共开了多少的 php-cgi 进程

   1.

      ps -fe |grep "php" | grep -v "grep" | wc -l


使用如下命令查看已经有多少个php-cgi进程用来处理tcp请求

   1.

      netstat -anop | grep "php" | grep -v "grep" | wc -l


当被使用的php进程接近所开启的php进程数时,可以考虑将被耗用的php进程释放一下,以防止网站访问的阻塞。

按照以上思路编写了一个检查脚本。

1.

#

#!/bin/sh

#



echo "begin check"



#define default check delta num

defdeltacount=10



phpcount=`ps -fe |grep "php" | grep -v "grep" | wc -l`

netstatcount=`sudo netstat -anop | grep "php" | grep -v "grep" | wc -l`



echo "  php process count is $phpcount

netstat process count is $netstatcount"



deltacount=`expr $phpcount - $netstatcount`



if [ -n "$1" ]; then

  defdeltacount=$1

fi



echo "deltacount is $deltacount, defdeltacount is $defdeltacount"



if [ $deltacount -lt $defdeltacount ]; then

  echo "  need reset"

  sudo /root/tools/resetphp.sh

else

  echo "  not need reset"

fi



echo "check end"


其中 /root/tools/resetphp.sh 为编写的php重启脚本。
脚本可以放到 crontab 中,做自动定时检查处理。

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/1893/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2009-8-5 16:10
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]