我正在尝试找出一种方法来有条不紊地计算机器上应该运行多少 PHP cgi 进程。
一种思考方式是计算出进程的平均内存占用量,并在可用 RAM 的限制内运行尽可能多的进程。但是,这不会将 CPU 使用率带入问题中。
由于 CPU 是我的应用程序中真正的瓶颈(使用了 DB 和内存缓存,但不是瓶颈),我认为 php 进程的基数应该是可用的 CPU 数。
例如 - 在 8 核机器中,基数将为 8。假设某些进程确实在等待数据库或网络,我看不出有任何理由同时运行超过 20 个 PHP 进程。
这样的想法有道理吗?您如何计算要运行的进程数?
最佳答案
选项 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
关于php - 我应该运行多少个 php-cgi 进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1943737/