2015-12-10 132 views
2

的窃取时间过长我已经习惯AWS EC2来部署一个使用Apache Kafka数据的Python应用程序。最近几天,我发现当传入数据变大时,CPU的窃取时间会变得过高(约35%)。AWS EC2

The following figure shown the CPU usage of that machine, given by Zabbix

使用的EC2实例是t2.medium,CPU 2和4G存储器。任何人都可以告诉我为什么会发生这种情况,有什么办法可以避免它。

+0

请将您可以在EC2控制台中找到的CPU信用余额的Cloudwatch图表发布一段时间,该时间段与您所显示图表中的时间段相当。这应该很好地解释您看到的内容,并且我期望它会通过@ user567797确认您在这些时间内已用完信用的答案。请注意,您越难推送一个信用不足的实例,则越多的时间显示为“被盗”,因为当这些周期闲置时,不需要窃取。偷窃只出现在需求的情况下。 –

回答

4

如果不查看您的应用程序和指标,则很难评论。我的猜测是T2实例是burstable performance instances它们在正常情况下提供了基本的CPU性能。但是,当负载增加时,突发性能实例爆发,这意味着提高CPU性能。

CPU Credit指示实例中CPU的突发量。您可以将此CPU信用额度用于增加突发期间的CPU性能。

当您不支持CPU信用时,它会降低整体性能,而不仅仅是阻止您破坏性能。事实上,您将会观察到90%以上的CPU窃取时间,这意味着当您的信用不足时,管理程序不允许您的实例在CPU上。你可以看到更多http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-instances.html#t2-instances-cpu-credits

希望这会有所帮助。

+0

这或者只是试图在CPU限制的实例上做太多事情,可能是忙碌的邻居。根据我的经验,CPU窃取对于* .large实例和更大的实例而言不是问题。 –

+0

@ user567797我怀疑你是正确的,但有一点需要澄清的是t2实例并不是完全“可破解的”。核心专用于虚拟机,并始终以完全倾斜运行,直到您的余额接近0.在1个核心的100%处,每1分钟就会烧掉1个信用点。在t2.medium的情况下,每分钟都会获得一小部分的信用额度,这足以保持20%的连续性,并且这里的基准线看起来只略低于此数......证实这看起来像信用卡余额很低。 –