首先我应该说我是服务器配置和管理方面的新手。
就我而言,mariadb 的 CPU 使用率很高,当资源不可用且网站瘫痪时,oom killer 会关闭此服务。
当 oom killer 杀死服务时,如何维持网站正常运行或限制服务的资源以防止 oom killer 杀死服务?
我搜索了很多有关限制资源的信息,但所有的解决方案都说我应该优化我的服务和应用程序,但我找不到通过限制资源来防止服务被终止的解决方案。
答案1
我会研究解决实际问题,即提高应用程序性能或增加服务器资源。
另外需要注意的是,高 CPU 使用率不会导致 oom kill。您可以使用dmesg | grep -i "oom-killer"
或(如果您有 atop 命令)查看发生这种情况时的过去数据
答案2
innodb_buffer_pool_size
高 RAM 使用率可能会导致 OOM。您有多少 RAM?和 的设置是什么max_connections
?同一台服务器上是否还有其他应用在运行?如果有,它们需要多少 RAM?
缺少交换空间也会导致此问题。如果可行,请添加一些交换空间。这不会解决问题,但(大部分情况下)可以防止发生 OOM。缺点是速度会显著减慢。
高 CPU 使用率不会导致 OOM,至少不会直接导致。使用 开启 slowlog long_query_time = 1
。然后我们尝试改善慢查询。更多讨论: SlowLog