PHP-FPM配置优化

  1. 作者QQ:67065435 QQ群:669756510

  2. 本站内容全部为作者原创,转载请注明出处!

优化流程

  1. 确认PHP版本

    # php5中没有www.conf,PHP-FPM主要配置项都在php-fpm.conf中
    # php7、php8有www.conf,PHP-FPM主要配置项都在www.conf中
    php -v
    
  2. 确认服务器硬件配置

    # 可以通过
    top
    free -m
    # 等确认服务器配置及资源占用情况
    
  3. 计算配置值(以2核4G为例)

    # 考虑到用户一般会在下班、放学后访问网站、APP、小程序等,推荐使用动态进程管理(static-静态 dynamic-动态)
    ; 进程管理
    pm = dynamic
    pm.max_children = 100     ;最大启动进程数,单请求最大占用30M内存,再大就该优化代码,考虑预留内存防耗尽,取3000M/30M=100
    pm.start_servers = 10     ;初始启动进程数,官方手册建议为CPU核数2*5,默认值:最小空闲进程数+最大空闲进程数/2
    pm.min_spare_servers = 10 ;最小空闲进程数,建议≤初始启动进程数
    pm.max_spare_servers = 30 ;最大空闲进程数,建议≥初始启动进程数,且≤最大启动进程数,过大内存浪费,过小会频繁创建及删除进程
    
    ; 超时控制
    request_terminate_timeout = 30s      ; 脚本最长执行时间,超时自动终止
    request_slowlog_timeout = 3s         ; 超过3秒记录慢请求日志
    slowlog = /var/log/php-slow.log      ; 慢日志路径
    
    ;内存控制
    pm.max_requests = 10240              ; 进程生命周期单个进程处理这些次请求后重启释放内存,避免内存泄漏(这是php-fpm的内存回收机制)
    php_admin_value[memory_limit] = 128M ; 单脚本内存限制,根据业务调整
    listen = /var/log/php-fpm.sock       ; 使用UnixSocket通信,比TCP更快
    
Copyright © 鲸小鱼 2012-∞ all right reserved,powered by Gitbook修订: 2000-10-10 00:00

results matching ""

    No results matching ""