我有一个问题。 我拥有一个128mb vps的简单博客,每天只有一百次点击。 我已经安装了nginx + php5-fpm。考虑到低访问量和RAM,我决定将fpm设置为1,并运行1个服务器。虽然我正在做我的随机测试,例如通过超过30分钟的http运行php脚本,我试图在同一台机器上打开该博客,并注意到该网站基本无法访问。所以我去的配置和阅读:php5-fpm儿童和请求
The number of child processes to be created when pm is set to 'static' and the
; maximum number of child processes to be created when pm is set to 'dynamic'.
; **This value sets the limit on the number of simultaneous requests that will be
; served**
什么震撼了我最是我不知道,因为我一直认为一个PHP的孩子会在同一时间处理数百个请求像一个http服务器会做! 它是否正确? 例如,如果我启动2个php-fpm子项并同时启动2个“长脚本”,所有使用相同php后端的站点都将无法访问?这是如何使用的? 你可能会认为:-duh!一个PHP脚本(网页)通常在100毫秒内处理 - ...毫无疑问,但如果您的页面每个可能运行大约10秒,并且我有10个访问者使用php-fpm与5台服务器,只会接受每次同时有5个请求?他们会全部排队还是会遇到超时?
我老实说,用Apache和mod_php在Windows中运行网站我从来没有遇到过这些问题,因为显然这些限制并不适用于使用PHP的不同方式。
这也引出了另一个问题。如果我的file_1.php中有sleep(20)和file_2.php,只有echo,如果我用fastcgi机器运行file_1和file_2,则第二个文件将请求创建另一个服务器,以使用4MB RAM处理php请求。如果我对apache/mod_php执行相同的操作,则第二个文件将只使用30KB的RAM(在apache服务器中)。考虑到这个原因,为什么mod_php正在考虑“坏人”,如果使用的RAM实际上更少......我知道我错过了这里的大图。
完美的解释 –
您是否愿意提供您的意见?谢谢http://stackoverflow.com/questions/10703976/why-does-apachemod-php-on-windows-require-low-ram-usage –
@timdev感谢您的详细解释:) – conceptdeluxe