如何排除极高的平均负载(超过 550)的故障?

如何排除极高的平均负载(超过 550)的故障?

我是 Ubuntu 18.04 用户,在 OVHCloud 数据中心运行了 3 年,上面有 PHP 应用程序和 Mysql 服务器。2.5 年来,一切都很好,但在过去的 6 个月里,我遇到了一个奇怪的问题:

  • 每个月的第四个星期日,晚上 10 点 30 分左右,我的平均负载就会变得非常高,超过 550,然后我的服务器就会崩溃。

发生这种情况时,我可以通过 ssh 登录,可以停止所有服务,但无法修复平均负载。我重新启动后,它又可以工作 4 周,然后问题再次出现。

有人能帮助我如何排除导致 CPU 平均负载极高的原因吗?以及为什么总是同时出现这种情况?

请看一下来自 htop 的这张图片:

顶部

谢谢

答案1

如果不是 OVH 的主机做了一些疯狂的事情,而是你的机器内部做了一些事情,那么这很可能是一项cron工作。

我倾向于查找/etc/cron.d任何包含配置为在那一天那个时间开始的作业的文件。

您可能grep "^30 22" /etc/cron.d/*要查找以 (^) 开头的任何行,即 22(小时)后 30(分钟)。或者您可以逐行查看。我怀疑那里有些配置不当的工作。

或者它可能是您的 crontabcrontab -l或 root 的 crontab中的某些内容sudo crontab -l

答案2

诊断此问题的一个方法是让dstat终端而不是 htop 继续运行。它擅长发现一段时间内的顶级进程。

ssh 连接到服务器,然后在screentmuxbyobu使用以下所有选项启动 dstat:dstat --time --cpu --net --disk --sys --load --proc --top-cpu --top-mem --top-io并让其保持运行。

它看起来是这样的:

dstat 的屏幕截图

当问题开始发生时,您可以回滚到问题开始的时间并查找异常进程。尤其是 CPU、内存和 IO 的“最昂贵”的最后三列。它还可以让您看到平均负载(中间几列)是立即失控,还是随着时间的推移而上升。可能会提供一些线索。

相关内容