【问题标题】:Why is AWS EC2 CPU usage shooting up to 100% momentarily from IOWait?为什么 AWS EC2 CPU 使用率会从 IOWait 瞬间飙升至 100%?
【发布时间】:2016-09-28 16:54:36
【问题描述】:

我有一个在 AWS 中运行的大型基于 Web 的应用程序,其中包含许多 EC2 实例。有时——大约每周两次或三次——我会收到来自我的Sensu 监控系统的警报通知,通知我我的一个实例已达到 100% 的 CPU。

这是通知:

CheckCPU TOTAL WARNING: total=100.0 user=0.0 nice=0.0 system=0.0 idle=25.0 iowait=100.0 irq=0.0 softirq=0.0 steal=0.0 guest=0.0

Host: my_host_name
Timestamp: 2016-09-28 13:38:57 +0000
Address: XX.XX.XX.XX
Check Name: check-cpu-usage
Command: /etc/sensu/plugins/check-cpu.rb -w 70 -c 90
Status: 1
Occurrences: 1

这似乎是暂时的,CPU 会在几秒钟内恢复到正常水平。所以这似乎是一件不必太担心的事情。但我仍然很好奇为什么会这样。请注意,CPU 被 100% 的 IOWaits 占用。

仅供参考,亚马逊的监控系统没有注意到这个信号。请参阅下图,显示 13:38 时的 CPU 和 IO 级别

有趣的是,AWS 告诉我这个实例很快就会被淘汰。这两者有关系吗?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 sensu


    【解决方案1】:

    AWS 仅显示 5 分钟的时间段,看起来您的 CPU 检查设置为在发生一次后发送警报。如果您的 CPU 检查间隔小于 5 分钟,AWS 控制台可能会汇总平均值以掩盖实际的 CPU 峰值。

    我建议将 AWS 监控控制台缩小到更短的时间段,看看您是否看到那里的峰值。

    【讨论】:

      【解决方案2】:

      我会将此添加为评论,但我没有这样做的声誉。

      我注意到我的 ec2 实例一直在这样做,但时间更长,而且是在 apt-get update + upgrade 之后。 我坚持认为这是一个 Apache 的东西,然后开始在一个新实例中使用 Nginx 进行测试,它就做到了,几个小时前运行 apt-get,然后回来找到使用全 cpu 的实例 - 几个小时!好在它只是一台测试机器,但我想知道 ubuntu/apt-get 有什么问题可能导致这种情况。从现在开始,我想我将不得不在 apt-get 之后重新启动机器,因为这似乎是让它恢复正常的唯一方法。

      【讨论】:

        猜你喜欢
        • 2015-07-20
        • 1970-01-01
        • 1970-01-01
        • 2012-10-30
        • 1970-01-01
        • 1970-01-01
        • 2023-03-13
        • 2014-10-02
        • 2023-02-01
        相关资源
        最近更新 更多