linux

php-fpm在Linux上如何调优

小樊
40
2025-10-03 17:37:30
栏目: 编程语言

在Linux上对PHP-FPM(FastCGI Process Manager)进行调优可以显著提高PHP应用程序的性能。以下是一些常见的调优步骤和建议:

1. 调整进程管理参数

PHP-FPM提供了多种进程管理方式,包括dynamicondemandstatic。默认情况下,PHP-FPM使用dynamic模式。

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35

2. 调整请求处理参数

request_terminate_timeout = 0

3. 调整内存限制

memory_limit = 128M

4. 启用OpCache

OpCache可以显著提高PHP脚本的执行速度。

[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60

5. 调整日志级别

error_log = /var/log/php-fpm/error.log
log_level = notice

6. 调整文件描述符限制

确保PHP-FPM进程有足够的文件描述符可用。

ulimit -n 65535

7. 调整TCP参数

优化TCP参数以提高网络性能。

net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.ip_local_port_range = 1024 65535

8. 使用持久连接

如果可能,使用持久连接(keep-alive)来减少连接开销。

fastcgi_keep_conn = on

9. 监控和调优

使用监控工具(如tophtopphp-fpm status)来监控PHP-FPM的性能,并根据实际情况进行调整。

10. 重启PHP-FPM

在修改配置文件后,记得重启PHP-FPM服务以应用更改。

sudo systemctl restart php-fpm

示例配置文件

以下是一个示例的php-fpm.conf配置文件:

[global]
daemonize = yes
pid = /run/php/php7.4-fpm.pid
error_log = /var/log/php-fpm/error.log
log_level = notice

[www]
listen = /run/php/php7.4-fpm.sock
listen.owner = www-data
listen.group = www-data
user = www-data
group = www-data
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
request_terminate_timeout = 0
memory_limit = 128M
opcache.enable = 1
opcache.memory_consumption = 128
opcache.interned_strings_buffer = 8
opcache.max_accelerated_files = 4000
opcache.revalidate_freq = 60
fastcgi_keep_conn = on

根据你的具体需求和环境,可能需要进一步调整这些参数。

0
看了该问题的人还看了