首页 > 技术分享 > LNMP|WAMP
收藏

PHP-FPM调优方法

01/15 14:14
大潇博客 原创文章,转载请标明出处

PHP-FPM是一种常用的PHP进程管理器,默认情况下,PHP-FPM只启动少量进程来处理请求,调优PHP-FPM的配置,可以增加并发数量,提升负载能力


首先找到配置文件php-fpm.conf,大多的php-fpm.conf中会存在“include=/etc/php/7.0/fpm/pool.d/*.conf”,找到pool.d目录下的www.conf文件


重点修改以下配置

pm = dynamic  #动态进程

pm.max_children = 50  #最大进程数

pm.start_servers = 20   #启动时的进程数

pm.min_spare_servers = 5  #空闲进程的最小数量

pm.max_spare_servers = 10  #空闲进程的最大数量


pm = dynamic 

这个参数控制PHP-FPM进程创建,dynamic表示动态创建,static表示静态

静态的好处是能节省创建PHP-FPM进程的开销


pm.max_children = 50

这个参数表示最大创建的PHP-FPM进程数,它控制着PHP-FPM进程池的大小和性能表现

太小会导致无法处理足够的请求

太大容易导致系统资源不足,间接导致进程池崩溃或系统负载过高

所以这个参数比较重要,需要根据实际情况调整

可以通过下面的计算获得:

pm.max_children = 专用于Web服务器的总RAM /最大子进程大小

一般情况下一个PHP进程占10M-30M的内存,特殊情况会达到80M-100M


pm.start_servers = 20

启动时的进程数,默认为 (最小空闲数+最大空闲数)/2


注意事项:

start_servers(启动时的进程数)不能高于max_spare_servers(空闲最大进程数)

max_spare_servers(空闲最大进程数)不能高于max_children(最大进程数)

如果不遵循上面的规则,修改配置后,会导致重启PHP-FPM服务失败

查看原因可得到提示:

pm.start_servers(..) must not be less than pm.min_spare_servers(..) and not greater than pm.max_spare_servers(..)


优化PHP配置

除了调整PHP-FPM的相关参数,我们还可以优化PHP的一些配置,以进一步提高性能。以下是一些常见的优化项:

提高PHP缓存的大小

opcache.memory_consumption = 256

提高PHP脚本解析的缓存大小

max_execution_time = 30

优化PHP内存管理

memory_limit = 128M

启用PHP FastCGI缓冲

fastcgi_buffers 8 16k;

fastcgi_buffer_size 32k;


打赏

阅读排行

大家都在搜

博客维护不易,感谢你的肯定
扫码打赏,建议金额1-10元
  • 15601023311