我目前正在测试一个新的nginx/php-fpm,我在一个新的VPS上安装了4GB的RAM:
来自我的php-fpm进程池配置:
pm = static
pm.max_children = 10我有一个简单的load.php脚本,它模拟了一个长时间运行的mysql查询:
<?php
echo sleep(5);
echo "you see me after 5 seconds";
?>然后对这个脚本进行加载,如下所示:
ab -n 1000 -c 100 http://mydomain.com/load.php当我跟踪nginx访问日志时,我一次看到一小部分请求,而不是我所期望的高吞吐量。
数据到底是如何从nginx流向php后端和后端的?
如果我有10个静态子进程,那么php后端会在接受另外10个请求之前处理10个请求(每个5秒)吗?当然,坐着看那些看似大致如此的日志--这是正确的吗?
如果是这样,并且我正在运行一个php应用程序,如果在DB端(因此在php进程时间层)相当繁重,那么我应该仅仅增加子进程的数量以加快并发处理请求所需的时间吗?
发布于 2012-10-23 15:26:29
pm.max_children意味着您只能同时运行那么多php进程。如果它们都需要很长时间,那么您将被捆绑,其他传入连接必须等待。要解决这个问题,请将php池的大小增加到给定资源约束的最大限度。
https://serverfault.com/questions/441400
复制相似问题