阅读量:2
优化Ubuntu上的PHP-FPM可从配置、性能、监控等方面入手,具体如下:
-
调整进程池参数
- 模式选择:动态模式(dynamic)适合波动负载,静态模式(static)适合稳定高并发。
- 核心参数:
pm.max_children:根据内存计算(单进程约30-80MB),公式为(可用内存-预留内存)/单进程内存。pm.start_servers:建议为max_children×0.2。pm.min/max_spare_servers:分别设置为max_children×0.1和0.6,避免频繁启停。pm.max_requests:设为500-1000,防止内存泄漏。
-
启用关键优化功能
- OPcache:缓存编译后的PHP代码,减少重复解析。在
php.ini中启用并设置内存(如128MB)、文件缓存数量。 - JIT加速(PHP 8.0+):在
opcache配置中添加opcache.jit=tracing和opcache.jit_buffer_size=64M。
- OPcache:缓存编译后的PHP代码,减少重复解析。在
-
优化文件与连接配置
- 监听方式:优先使用Unix Socket(
fastcgi_pass unix:/run/php/php8.x-fpm.sock),减少TCP开销。 - 慢日志:开启慢请求记录(
slowlog=/var/log/php-fpm/slow.log,request_slowlog_timeout=5s),定位性能瓶颈。
- 监听方式:优先使用Unix Socket(
-
系统级优化
- 内存管理:启用HugePages提升内存访问效率,并配置OPcache使用HugePages。
- 权限优化:将PHP-FPM用户设为与Nginx相同的用户(如
www-data),避免权限问题。
-
监控与调优
- 工具监控:使用
htop、top查看进程状态,或通过Prometheus+Grafana监控实时指标。 - 定期重启:通过
systemctl restart php8.x-fpm定期重启,释放内存。
- 工具监控:使用
注意:修改配置后需重启PHP-FPM服务,建议先在测试环境验证效果。
参考来源:
以上就是关于“如何优化ubuntu上的php-fpm”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm