如何诊断和修复内核中频繁出现的 100% CPU 利用率问题?

如何诊断和修复内核中频繁出现的 100% CPU 利用率问题?

我有一个运行旧版 2.6.16 内核的 Amazon EC2 微型实例。它运行 postfix、apache 和 mysql。在正常负载期间,它的平均负载约为 0.05,并且 95% 左右的时间都以这种方式运行。但是,每天有几次(或大约几次),CPU 使用率会飙升至 100%,系统几乎无法使用。这通常持续大约 5 分钟,然后负载恢复正常。

如果我设法在发生这种情况时查看 htop(这并不容易——负载非常严重),我会发现没有任何正在运行的任务占用任何显着的 CPU 使用率,这让我相信这一切都必须发生在内核空间中。

我如何诊断此负载的原因以及更重要的是修复它?

答案1

这些期间“iowait”和“steal”CPU 时间的百分比是多少?

Iowait 表示 CPU 等待 IO 请求完成的时间,steal percentage 表示内核请求但被虚拟机管理程序拒绝的 CPU 时间。

EC2t1.micro实例非常CPU 和 IO 受限。它们可能会在很短的时间内爆发,之后它们会受到严重的 CPU 限制。下次发生这种情况时,请注意输出中的%wa和。我敢打赌,其中一个或两个都具有很高的 CPU 时间百分比。%sttop

为了缓解,您需要找到 IO 和/或 CPU 负载的来源,或者将实例大小调整为m1.small

相关内容