当服务器资源不可用时如何保持网站正常运行

当服务器资源不可用时如何保持网站正常运行

首先我应该说我是服务器配置和管理方面的新手。

就我而言,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

相关内容