【发布时间】:2009-12-22 01:45:39
【问题描述】:
我正在询问一个运行轻前端的 Web 服务器(在我的例子中是 nginx),通过 fastcgi 访问 PHP 进程。
我正在尝试找出一种方法来有条不紊地计算机器中应该运行多少 PHP cgi 进程。
一种思考方式是计算一个进程的平均内存占用,并在可用 RAM 的限制内尽可能多地运行。但是,这不会将 CPU 使用率带入问题。
由于 CPU 是我的应用程序中真正的瓶颈(使用了 DB 和 memcache,但不是瓶颈),我认为 php 进程的基数应该是可用 CPU 的数量。
例如 - 在 8 核机器中,基数为 8。假设某些进程确实等待数据库或网络,我看不出有任何理由同时运行超过 20 个 PHP 进程。
这种思维方式有意义吗?您如何计算要运行的进程数?
【问题讨论】:
-
啊,有什么问题吗?您是否因为高负载而获得较长的响应时间?连接是否被丢弃?用户抱怨吗?还是这个应用程序实际上还没有发布? (我认为计算这个有条不紊的方法是查看您的应用程序的实际测量值。)但是,是的,8 或 20。对我来说听起来不错! :)
-
目前没有问题。该应用程序正在使用 apache-modphp,我们正在转向 nginx+fastcgi。问题出现在规划阶段。