EC2机器或网络有限制吗?

use*_*814 2 cpu performance networking traffic amazon-ec2

我在Amazon EC2上有2个实例.一个是t2.micro作为Web缓存服务器的机器,另一个是性能测试工具.

当我开始测试时,TPS(每秒事务数)约为3000.但几分钟后,TPS已减少到300.

起初我认为CPU信用余额已经用尽,但它足以处理请求.在测试过程中,Web缓存的最大传出流量为500Mbit/s,CPU使用率为60%,可用内存绰绰有余.

我找不到TPS减少的任何原因.EC2机器或网络有限制吗?

Joh*_*ein 7

有几个因素可能会限制您的流程.

T2实例上的CPU积分

正如您所引用的,T2实例使用信用来突发CPU.它们是非常强大的机器,但每个实例仅限于一定数量的CPU.t2.micro实例获得10%的CPU,这意味着它们实际上只有10%的时间(以毫秒级的分辨率)获得100%的CPU.

实例从CPU信用开始以快速启动,并且当CPU的使用速度快于获得信用时,将消耗这些信用.但是,你说信用余额是足够的,所以这似乎不是原因.

网络带宽

每个Amazon EC2实例都可以使用一定的网络带宽吞吐量.较小的实例具有"低"带宽,较大的实例具有更多带宽.没有正式的带宽大小声明,但这是Serverfault的有趣参考:Amazon EC2的带宽限制

磁盘IOPS

如果您的应用程序对每个事务使用磁盘访问,并且您的实例使用的是通用(SSD)实例类型,那么您的磁盘可能已经消耗了所有可用的爆发信用.如果您的磁盘很小,这可能意味着它将运行缓慢(速度为每GB 3 IOPS,因此20GB磁盘将以60 IOPS运行).检查Amazon CloudWatch VolumeQueueLength指标以查看IO是否排队过度.

还有别的

减速也可能是由于您的应用程序或缓存系统(例如,用于存储数据的空闲内存耗尽).