我应该运行多少个php-cgi进程?

时间:2009-12-22 01:45:39

标签: php fastcgi

我问的是运行轻型前端的Web服务器(在我的情况下是nginx),通过fastcgi访问PHP进程。

我试图找出一种方法来有条不紊地计算应该在机器中运行多少PHP cgi进程。

考虑它的一种方法是计算进程的平均内存占用量,并在可用RAM的限制内尽可能多地运行。但是,这并没有将CPU使用率带入问题。

由于CPU是我应用程序的真正瓶颈(使用了DB和memcache,但不是瓶颈),我认为php进程的基数应该是可用CPU的数量。

例如 - 在8核机器中,基数为8.假设某些进程等待数据库或网络,我认为没有任何理由共同运行超过20个PHP进程。

这种思维方式有意义吗?如何计算要运行的进程数?

1 个答案:

答案 0 :(得分:1)

选项1 :使用您的apache日志确定高峰时段的持续时间。

为您的日志格式添加持续时间。 (像)

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" duration:%T/%D 

然后执行一些日志文件解析以分析并发处理请求的数量。

选项2 (如果应用程序有专用的apache服务器):编写一个cron作业来记录apache进程的数量:

# Quick hack to log apache processes 
* * * * * date -R >> /tmp/apache_count &&  ps -A | grep httpd | grep -v grep | wc -l > /tmp/apache_count
相关问题