在Linux环境下,PHP-FPM(FastCGI Process Manager)的内存管理主要涉及以下几个方面:
配置PHP-FPM进程池:
/etc/php/{version}/fpm/pool.d/www.conf
文件(其中{version}
是PHP版本号),可以配置多个进程池,每个进程池可以有不同的参数设置。关键配置项包括:
pm
:进程管理方式,可选dynamic
、ondemand
、static
。pm.max_children
:最大子进程数。pm.start_servers
:启动时的服务器进程数。pm.min_spare_servers
:最小空闲服务器进程数。pm.max_spare_servers
:最大空闲服务器进程数。pm.max_requests
:每个子进程在重启前处理的请求数。调整PHP内存限制:
php.ini
文件中的memory_limit
参数来限制每个PHP脚本的内存使用。主要配置文件包括:
/etc/php/{version}/cli/php.ini
(命令行模式)/etc/php/{version}/fpm/php.ini
(FPM模式)使用OPcache:
sudo apt-get install php-opcache
php.ini
文件,添加或修改以下配置:[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
监控和调优:
top
:实时查看系统资源使用情况。htop
:更直观的资源监控工具。php-fpm status
:查看PHP-FPM的状态信息。vmstat
:查看虚拟内存统计信息。free
:查看内存使用情况。日志分析:
/var/log/php-fpm/error.log
/var/log/php-fpm/www-error.log
通过以上步骤,可以有效地管理Linux环境下PHP-FPM的内存使用,确保系统的稳定性和性能。