在 Ubuntu 上优化 PHP-FPM 的内存使用可以通过多种方法来实现。以下是一些常见的优化策略:
PHP-FPM 的配置文件通常位于 /etc/php/版本号/fpm/pool.d/www.conf。你可以根据服务器的内存大小和应用的需求来调整以下参数:
pm.max_children: 这个参数控制 PHP-FPM 可以同时处理的最大请求数。每个子进程都会占用一定的内存,因此你需要根据服务器的内存大小来设置这个值。
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
在 php.ini 文件中设置内存限制,以防止 PHP 脚本使用过多的内存。
memory_limit = 128M
OPcache 可以显著提高 PHP 的性能,因为它会缓存编译后的 PHP 代码,减少重复编译的开销。
在 php.ini 文件中启用 OPcache:
[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
PHP 7 和更高版本在性能和内存使用方面都有显著的改进。如果可能的话,升级到最新的 PHP 版本。
使用工具如 top, htop, php-fpm status 等来监控 PHP-FPM 的内存使用情况。这可以帮助你更好地理解内存使用模式,并进行相应的调整。
使用 Redis 或 Memcached 等缓存系统来缓存频繁访问的数据,减少对数据库的访问,从而降低内存使用。
通过以上方法,你可以有效地优化 PHP-FPM 在 Ubuntu 上的内存使用。记得在调整配置后重启 PHP-FPM 服务以使更改生效:
sudo systemctl restart php版本号-fpm
例如,如果你使用的是 PHP 7.4:
sudo systemctl restart php7.4-fpm