



























众所周知,WordPress,简直电老虎来的。
从笔者实际运营经验来看,查看服务器状态,就会经常看到php-fpm: pool (站点域名)这一进程,对鄙服务器CPU资源的占用,其最低线稳定于⅔,动辄则99%,甚至于满格。
为此可能需要调整pm.max_children、pm.start_servers、pm.min_spare_servers和pm.max_spare_servers这些参数。
PHP-FPM站点池的配置文件通常位于/etc/php/(版本号)/fpm/pool.d/www.conf。当然,有时根据实际情况,修改的对象会是/etc/php/(版本号)/fpm/pool.d/(具体域名).conf。
在一些环境下,上述文件可能不支持直接修改,或者修改后也不会永久性保存。这时则根据实际情况来找寻配置位置,例如网站根目录下的.user.ini(记得配置好正确的文件权限)。
在许多PHP-FPM默认配置文件里,pm模式会被设置为ondemand,而pm.max_children的值被设置为4。在ondemand模式下,PHP-FPM只会在请求到达时启动新的子进程,并在子进程空闲一段时间后关闭它们。这种模式对于低流量的网站是非常有效的,但对于高流量的网站可能会导致额外的CPU消耗,因为需要频繁地创建和销毁子进程。以下是一些可能的优化建议:
修改进程管理模式:
pm模式从ondemand更改为dynamic。在dynamic模式下,PHP-FPM将保持一定数量的空闲进程,以便能够更快地响应新的请求。pm = dynamic
增加最大子进程数:
pm.max_children的值决定了同时能处理多少请求。如果服务器资源允许,你可能想要增加这个值以处理更多的并发请求。pm.max_children = 16 ; 或更高的值,视服务器资源而定
设置服务器进程数:
dynamic模式下,你还可以设置pm.start_servers,pm.min_spare_servers和pm.max_spare_servers参数来控制空闲进程的数量。例如:pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 4
优化最大请求数:
pm.max_requests参数决定了每个子进程在重新生成之前可以处理多少请求。这可以防止可能的内存泄漏。你可以根据贵站的具体情况调整这个值。pm.max_requests = 5000 ; 或其他适合你的网站的值,4000可能够用了
调整空闲进程超时:
pm.process_idle_timeout参数决定了一个子进程在被关闭之前可以保持空闲多长时间。你可以根据需要调整这个值。pm.process_idle_timeout = 20s ; 或其他适合你的网站的值
以上建议可以帮助你优化PHP-FPM的配置,以更好地处理高流量并减少CPU的消耗。每次修改配置后,确保重启PHP-FPM服务以使更改生效。同时,建议在一个测试环境中尝试这些更改,以确保它们不会影响贵站的正常运行。
PHP版本:
慢日志:
WordPress网站报错和服务器资源过度使用,也可能是由多种因素造成。
本文仅聚焦于PHP配置,只不过若果按照本文方式修改,仍有问题,也可以考虑下如下方向:
插件问题:
主题问题:
代码优化:
数据库优化:
缓存:
CDN服务:
服务器配置:
服务器资源:
定期监控:
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。