在CentOS系统中优化PHP-FPM(FastCGI Process Manager)配置可以显著提升PHP应用程序的性能。以下是一些常见的优化步骤和建议:
编辑/etc/php-fpm.d/www.conf文件,调整以下参数:
pm:选择进程管理模式,常用的是dynamic或ondemand。
pm = dynamic
pm.max_children:最大子进程数,根据服务器的内存和应用的资源需求来设置。
pm.max_children = 50
pm.start_servers:启动时的服务器进程数。
pm.start_servers = 5
pm.min_spare_servers:最小空闲服务器进程数。
pm.min_spare_servers = 5
pm.max_spare_servers:最大空闲服务器进程数。
pm.max_spare_servers = 35
pm.max_requests:每个子进程在重启之前处理的请求数。
pm.max_requests = 500
request_terminate_timeout:请求超时时间,防止长时间运行的脚本占用资源。request_terminate_timeout = 30s
php_admin_value[memory_limit]:设置PHP脚本的内存限制。php_admin_value[memory_limit] = 256M
OPcache可以显著提高PHP脚本的执行速度。编辑/etc/php-fpm.d/www.conf文件,添加或修改以下行:
[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
减少日志记录的频率可以减轻I/O负担。编辑/etc/php-fpm.d/www.conf文件,修改以下行:
catch_workers_output = yes
php_admin_flag[log_errors] = off
php_admin_value[error_log] = /var/log/php-fpm/error.log
确保PHP-FPM有足够的文件描述符可用。编辑/etc/security/limits.conf文件,添加以下行:
* soft nofile 65535
* hard nofile 65535
编辑/etc/sysctl.conf文件,添加或修改以下行以优化网络和文件系统性能:
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.ip_local_port_range = 1024 65535
fs.file-max = 100000
然后运行sysctl -p使更改生效。
使用监控工具(如top、htop、php-fpm status)来监控PHP-FPM的性能,并根据实际情况进一步调整配置。
通过以上步骤,你可以有效地优化CentOS系统中的PHP-FPM配置,提升PHP应用程序的性能和稳定性。