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

标签 php fastcgi

我正在尝试找出一种方法来有条不紊地计算机器上应该运行多少 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/

相关文章:

php - 如何从多维数组中获取键名称

php - 从android上传大视频文件到服务器

php - nginx 没有传递 fastcgi 查询字符串

python - 如何临时将 Django 站点移动到子目录中(用于测试)?

.net - 是否有 .NET FastCGI 库?

php - 如果特定行数据尚未在同一日期插入,如何检查和插入数据

javascript - 从 Google Maps API 到 php 表单的坐标变量

javascript - PHP将内容回显到div中

python - FastCGI maxrequests、maxspare、minspare、maxchildren 使用什么值?

使用 fcgiwrap 的 nginx 上的 Python - 在从上游读取响应 header 时上游过早关闭 FastCGI stdout