php-fpm的pm.max children数量和并发能力有直接联系吗?

TIGERB
  • 9.4k

php-fpm的pm.max children数量和并发能力有直接联系吗?谢谢大家

回复
阅读 5.9k
4 个回答
✓ 已被采纳

简短的答案:
pm.max_children = 最大并发数

详细的答案:
pm.max_children 表示 php-fpm 能启动的子进程的最大数量。因为 php-fpm 是多进程单线程同步模式,即一个子进程同时最多处理一个请求,所以子进程数等于最大并发数。

进程数一般受限于内存和nginx类似,根据内存计算这个值是最合理的,到一定量了可能还得考验其他方面的硬件配置,比如io!所以答案是肯定有影响

肯定有的,我之前在查Nginx高并发配置的时候有看到。

正确的计算方式应该是掌握访问时的平均QPS,比如50ms,这可以用ab工具轻易得出。得到QPS数后,可以推导出客户对于访问量的要求我们应该需要多少个子进程。 进而得出需要多少台什么样性能的服务器。

max_children是pm=动态时才会响应的设定,通常可以用服务器的内存以1G= 10-20之间来计算,比如8G服务器可以设为 80-160,但不建议用160这么满,考虑到守护进程和php的一些依赖占用掉的内容,不建议超过总内存的三分之二。所以可以折中使用 120(即 15*8)。

PHP是内存大户,所以用内存计算子进程数是首选。

希望多年后的回复能给大家一些帮助。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏