PHP-FPM的max_children配置值是多少?
- 内容介绍
- 文章标签
- 相关推荐
本文共计916个文字,预计阅读时间需要4分钟。
当前Nginx + PHP-FPM基本成为主流配置,其中我们比较关注的是pm.max_children的配置。首先,我们关注一个设置:pm=static/dynamic。这个选项是标识FPM子进程的生产模式的:static:表示在启动时创建固定数量的子进程,dynamic:表示子进程数量根据需求动态调整。
现在nginx + fpm 基本成为主流的配置,其中我们比较关注的是pm.max_chindren的配置
首先,我们关注一个设置: pm = static/dynamic,
这个选项是标识fpm子进程的产生模式:
static :表示在fpm运行时直接fork出pm.max_chindren个worker进程
dynamic:表示,运行时fork出start_servers个进程,随着负载的情况,动态的调整,最多不超过max_children个进程。
一般推荐用static,优点是不用动态的判断负载情况,提升性能,缺点是多占用些系统内存资源。
上面的告诉我们max_chindren代表的worker的进程数。普遍认为,这个配置越多能同时处理的并发也就越多,这是一个比较大的误区:
- 1) 其实进程多了,增加进程切换的开销,更核心的是,能并发执行的fpm进程不会超过cpu个数。通过多开worker的个数来提升qps, 是错误的理解,不会说你多开了几个进程,就多出几个cpu来处理。
本文共计916个文字,预计阅读时间需要4分钟。
当前Nginx + PHP-FPM基本成为主流配置,其中我们比较关注的是pm.max_children的配置。首先,我们关注一个设置:pm=static/dynamic。这个选项是标识FPM子进程的生产模式的:static:表示在启动时创建固定数量的子进程,dynamic:表示子进程数量根据需求动态调整。
现在nginx + fpm 基本成为主流的配置,其中我们比较关注的是pm.max_chindren的配置
首先,我们关注一个设置: pm = static/dynamic,
这个选项是标识fpm子进程的产生模式:
static :表示在fpm运行时直接fork出pm.max_chindren个worker进程
dynamic:表示,运行时fork出start_servers个进程,随着负载的情况,动态的调整,最多不超过max_children个进程。
一般推荐用static,优点是不用动态的判断负载情况,提升性能,缺点是多占用些系统内存资源。
上面的告诉我们max_chindren代表的worker的进程数。普遍认为,这个配置越多能同时处理的并发也就越多,这是一个比较大的误区:
- 1) 其实进程多了,增加进程切换的开销,更核心的是,能并发执行的fpm进程不会超过cpu个数。通过多开worker的个数来提升qps, 是错误的理解,不会说你多开了几个进程,就多出几个cpu来处理。

