我有一个微型亚马逊EC2实例,每当此平台上的托管应用程序在几个小时内承受大量负载时,应用程序就会变慢,CPU信用额几乎达到零。
我已经启用了自动缩放选项,但仍然无法正常工作可以帮助我弄清楚如何解决这个问题吗?
答案 0 :(得分:1)
所有t2实例都使用burstable模型。这并非真正用于持续大量使用。这个实例在空转时会累积CPU积分。当CPU达到最大值时,将减少信用。一旦用完,你的上限就会很低。您可以获得的学分数量和获得的学分数取决于您正在使用的t2实例。
自动缩放用于水平缩放。有了它,您可以根据某些触发器启动额外的实例。但是,您需要使用负载均衡器来跨实例传播流量。
答案 1 :(得分:0)
对于如果您以100%使用所有记入CPU的情况,您如何看待CPU利用率,我的经验是您没有。您所看到的在顶部或iostat中,例如,CPU%报告为相当低。就像30%一样,虽然IO没有瓶颈,但您想知道为什么它会停留在较低的CPU%使用率上。
但是您可能会在最右端的顶部看到一个值,例如“窃取”值,例如“ 68%st”。这意味着您仅拥有该CPU的32%,因此30%的CPU值实际上是您获得的CPU的94%。
我还观察到,在顶部添加处于运行状态(R)的进程的CPU%时,得出的数字相对于实际可用的CPU。例如,我在带有2个虚拟CPU的t2.medium实例上有24个进程,每个进程以8%的速度运行,这意味着实际运行的是192%,即可用CPU周期的96%,而不是top和iostat报告的32%用户百分比。
如果要生成自动缩放触发器,我将查看从/ proc文件系统可以得到的内容,并考虑“窃取”金额。