【问题标题】:Is there any limitation on EC2 machine or network?EC2机器或网络有什么限制吗?
【发布时间】:2015-09-10 07:25:39
【问题描述】:

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

当我开始测试时,TPS(每秒事务数)约为 3000。但几分钟后,TPS 已降至 300。

一开始以为CPU积分余额用完了,但是处理请求已经够用了。在一次测试中,web缓存的最大输出流量为500Mbit/s,CPU使用率为60%,空闲内存绰绰有余。

我找不到任何导致 TPS 下降的原因。 EC2机器或网络有什么限制吗?

【问题讨论】:

  • 您有没有发现交易量下降的原因?

标签: performance networking amazon-ec2 cpu traffic


【解决方案1】:

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

T2 实例上的 CPU 积分

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

实例以 CPU 积分开始,以便快速启动,当 CPU 的使用速度快于获得积分时,这些积分就会被消耗。但是,您说贷方余额足够,所以这似乎不是原因。

网络带宽

每个 Amazon EC2 实例都可以使用一定的网络带宽吞吐量。较小的实例具有“低”带宽,较大的实例具有更多。没有官方的带宽大小声明,但这是来自 Serverfault 的一个有趣的参考:Bandwidth limits for Amazon EC2

磁盘 IOPS

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

别的东西

速度变慢也可能是由于您的应用程序或缓存系统(例如,用于存储数据的可用内存不足)。

【讨论】:

  • 我测试了 t2.micro 实例有多少流量限额。看来t2.micro 10分钟有15-20G的出流量限额。流量配额用完后,将应用 50M bps。
  • 奇怪的是,网络带宽存在可变限制——可能是您受到 CPU 限制?
  • 我测试过的机器每次测试都是新创建的。所有的测试都在 10 分钟内完成。我认为 CPU 积分余额就足够了。其他资源,如 CPU 使用率、可用内存也足够了。只有网络带宽受到未知原因的影响。
  • 除了网络带宽,也可能是网络数据包限制,与带宽不同。与带宽限制相比,数据包越小,您遇到的限制就越多。我对此进行了为期 4 周的研究,并写下了我的发现,并附有 github 存储库、数据表和大量图表。 packets per second limitations research
猜你喜欢
  • 2017-05-24
  • 1970-01-01
  • 1970-01-01
  • 2016-07-02
  • 2011-08-05
  • 1970-01-01
  • 2021-03-03
  • 2022-01-26
  • 1970-01-01
相关资源
最近更新 更多