文章目录
分享文章
PHP-FPM 文件路径
/usr/local/php/etc
原本参数
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
log_level = notice
[www]
listen = /tmp/php-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 20
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 20
pm.max_requests = 1024
pm.process_idle_timeout = 10s
request_terminate_timeout = 100
request_slowlog_timeout = 0
slowlog = var/log/slow.log
问 ChatGpt给的解释
根据您提供的PHP-FPM配置文件内容,以下是一些可能导致内存没有被释放的问题和建议的解决方法:
pm.max_requests设置:您的配置中pm.max_requests设置为1024,这意味着每个PHP-FPM子进程将在处理1024个请求后重新启动。这可能导致内存没有得到及时释放。您可以尝试将该值调低,例如设置为100或更低的值,以便更频繁地重新启动进程并释放内存。
pm.process_idle_timeout设置:您的配置中pm.process_idle_timeout设置为10秒,这意味着当一个进程在10秒内没有处理请求时,它将被终止。这可以帮助释放空闲进程的内存。您可以尝试将该值调低,例如设置为2秒或更低的值,以更快地释放内存。
慢日志配置:您的配置中启用了慢日志记录(slowlog),但request_slowlog_timeout设置为0,表示没有定义慢请求的时间阈值。您可以将request_slowlog_timeout设置为一个合理的值,例如设置为2秒,以便记录处理时间超过该阈值的请求。这有助于识别可能导致内存问题的长时间运行的请求。
错误日志和日志级别:确保您指定了正确的错误日志路径(error_log)和日志级别(log_level)。这些日志可以提供有关PHP-FPM进程运行时发生的问题的有用信息。您可以检查错误日志以查看是否有任何与内存相关的警告或错误信息。
请注意,上述建议是基于您提供的配置文件,但具体的解决方法可能因您的环境和需求而有所不同。如果问题仍然存在,建议进一步检查服务器资源使用情况、WordPress插件和主题的性能影响以及其他可能的配置问题。
按照建议进行修改
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
log_level = notice
[www]
listen = /tmp/php-cgi.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
listen.owner = www
listen.group = www
listen.mode = 0666
user = www
group = www
pm = dynamic
pm.max_children = 20
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 20
pm.max_requests = 10
pm.process_idle_timeout = 3s
request_terminate_timeout = 100
request_slowlog_timeout = 2
slowlog = var/log/slow.log