昨天我进行了一次版本升级,包括从 PHP 7.4 升级到 8.2。
起初,我认为问题可能出在 PHP 版本上(因为php8.2-fpm
服务不断死机),所以我恢复到了php7.4-fpm
,但这并没有解决问题。
php7.4-fpm.service: A process of this unit has been killed by the OOM killer.
php7.4-fpm.service: Failed with result 'oom-kill'.
php7.4-fpm.service: Consumed 12min 18.367s CPU time.
我有按池组织的站点套接字
所有都有此配置:
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
服务在 1 小时左右就会中断。因此我决定引入一个max_requests
限制
pm.max_requests = 1000
然后它变得更加稳定,但在大约 12 小时内就掉线了。所以现在我担心,只是调整一下并不断减少这个数字,只会让服务器在稍后掉线,但在某个时候掉线,这并不理想。奇怪的是,在更新(Ubuntu 20.04 LTS)之前,它是 100% 稳定的,从未掉线,而在更新到 Ubuntu 22.04 LTS 之后,事情开始变得疯狂。
在重新浏览了 Server Fault 和 Super User 中关于 OOM 的许多其他问题后,我已经没有想法去测试更多的选项了,所以我想知道是否有人可以建议我测试其他新的可能性
答案1
由于 Wordpress 插件(WP-Rocket)导致内存泄漏
我能够通过另一个问题中的这个答案来识别这一点:
https://stackoverflow.com/a/20590805/4442122
这指出了泄漏发生的确切位置。经过一番调查,我找到了原因。这根本不简单,特别是因为 (WP) 背后有一个庞大的系统,所以问题可能来自任何地方(特别是因为所有内容都是从 WP 中的主页 index.php 加载的)。