PHP-FPM进程管理参数详解

1. pm(进程管理方式)

定义了 PHP-FPM 如何管理进程池的进程数量。

  • 可选值
    • static(静态模式):固定数量的进程,pm.max_children 决定了有多少个进程。
      • 每次都会启动固定数量的 PHP 进程。
      • 适合高并发、且负载稳定的环境
    • dynamic(动态模式):根据请求动态调整进程数量。
      • 需要配置最小进程数、最大进程数等参数。
      • 适合负载波动较大的环境
    • ondemand(按需模式):只有请求时才启动进程。
      • 空闲时没有进程存在,非常节省资源。
      • 适合低负载、偶尔请求的场景

2. pm.max_children(表示最多可以同时运行的 PHP 进程数量

  • 定义
    • 表示 PHP-FPM 在静态模式或动态模式下,同时可以处理的最大并发请求数
    • 每个请求需要占用一个进程,超过这个数量的请求会被挂起,直到有进程可用。
  • 配置建议
    • 根据服务器内存、PHP 脚本的复杂度计算。
    • 经验公式

      max_children = (可用内存) / (每个 PHP 进程的内存占用)

      • 例如:假设服务器有 4GB 可用内存,每个 PHP 进程约占用 30MB,则最大值为:

        4096 MB / 30 MB ≈ 136

    • 注意:pm.max_children 配置得太高可能会导致内存不足。

3. pm.start_servers

  • 定义
    • 动态模式下,FPM 启动时创建的进程数量。
  • 默认值
    • 通常建议设置为 pm.min_spare_servers 和 pm.max_spare_servers 的中间值。
  • 配置建议
    • 在负载高峰期频繁重启 PHP-FPM 时,可以适当调高这个值。(start_servers = (min_spare_servers + max_spare_servers) / 2)

4. pm.max_requests

  • 定义
    • 每个 PHP-FPM 进程在处理了多少个请求后会被回收重启。
    • 设置此值可以避免 PHP 脚本中的内存泄漏问题。
  • 默认值0(不限制)
  • 配置建议
    • 建议设置为非 0 的适中值(如 500 或 1000)。
    • 数值过小会增加进程重启的频率,影响性能;数值过大可能会积累内存问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值