在EC2实例中非常有规律地高CPU%被盗

在AWS上运行一些网站m1.small EC2实例 。 我注意到我的CPU使用率在每隔30分钟(0:06,0:36,1:06,…)有规律的时间间隔出现峰值。

我检查了我的crons(我有很多),每30分钟没有一个机器人运行。 看着top我注意到,峰值约为1分钟,几乎完全由“被盗的CPU”(%st)组成 。 我已经读过,这是由亚马逊虚拟机pipe理程序盗取的CPU时间,但我不明白为什么会发生(我没有运行CPU密集型的东西时,这种情况发生),为什么它正好每隔30分钟。

你有什么线索吗? 我应该买一个更大的实例吗? 我希望不会,因为其余的时间CPU非常低, 平均负载 不会超过0.5 …

仙人掌CPU图

根据EC2实例types和底层硬件,您可能不会支付所有底层CPU周期的访问权限。 如果你要求一个m1.small被承诺相当于一个旧的,慢速的CPU,亚马逊是不会给你100%的现代,快速的CPU。

在EC2上,窃取不依赖于其他虚拟机邻居的活动。 这仅仅是EC2的一个问题,确保你没有比你付出更多的CPU周期。

如果你的m1.small获得了CPU速度的50%,那么对于你正在使用的每一个CPU,你都会看到另外一个被标记为窃取的百分比。

如果EC2让你认为你的真实可用的CPU是“100%”,而不是用你无法访问的CPU的其余部分来取笑你,然后告诉你,当你尝试使用CPU,但是就目前的虚拟机和主机设置而言,这是它的工作方式。

m1.small实例可能会显示高比例的盗取,因为他们有限的CPU可以访问的价格相比,底层硬件的CPU速度。

如果您担心这个特定的实例可能在EC2方面有问题,您可以停止/启动它将其移动到新的硬件( 我的文章 ),看看是否有所作为。 当然,如果盗取百分比下降,这可能只是表明你已经转移到一个较慢的硬件CPU。

至于每30分钟的活动,这是你的服务器上的软件。 它可能是一个系统cron作业,或者它可能被守护进程(后台进程)触发。