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

PHP-FPM提供了多种进程管理方式,包括dynamic、ondemand和static。默认情况下,PHP-FPM使用dynamic模式。
pm.max_children: 最大子进程数。pm.start_servers: 启动时的服务器进程数。pm.min_spare_servers: 最小空闲服务器进程数。pm.max_spare_servers: 最大空闲服务器进程数。pm = dynamicpm.max_children = 50pm.start_servers = 5pm.min_spare_servers = 5pm.max_spare_servers = 35request_terminate_timeout = 0memory_limit = 128MOpCache可以显著提高PHP脚本的执行速度。
[opcache]zend_extension=opcache.soopcache.enable=1opcache.memory_consumption=128opcache.interned_strings_buffer=8opcache.max_accelerated_files=4000opcache.revalidate_freq=60error_log = /var/log/php-fpm/error.loglog_level = notice确保PHP-FPM进程有足够的文件描述符可用。
ulimit -n 65535优化TCP参数以提高网络性能。
net.core.somaxconn = 65535net.ipv4.tcp_max_syn_backlog = 65535net.ipv4.ip_local_port_range = 1024 65535如果可能,使用持久连接(keep-alive)来减少连接开销。
fastcgi_keep_conn = on使用监控工具(如top、htop、php-fpm status)来监控PHP-FPM的性能,并根据实际情况进行调整。
在修改配置文件后,记得重启PHP-FPM服务以应用更改。
sudo systemctl restart php-fpm以下是一个示例的php-fpm.conf配置文件:
[global]daemonize = yespid = /run/php/php7.4-fpm.piderror_log = /var/log/php-fpm/error.loglog_level = notice[www]listen = /run/php/php7.4-fpm.socklisten.owner = www-datalisten.group = www-datauser = www-datagroup = www-datapm = dynamicpm.max_children = 50pm.start_servers = 5pm.min_spare_servers = 5pm.max_spare_servers = 35request_terminate_timeout = 0memory_limit = 128Mopcache.enable = 1opcache.memory_consumption = 128opcache.interned_strings_buffer = 8opcache.max_accelerated_files = 4000opcache.revalidate_freq = 60fastcgi_keep_conn = on根据你的具体需求和环境,可能需要进一步调整这些参数。