我们在AWS EC2中托管了一个c4.8xlarge类型的站点。它是一个相当大的系统,具有大量的内存和计算资源。上周末,数千名用户试图在2小时的时间内访问该系统。虽然它没有崩溃,但它的速度慢了不少,未能达到预期的性能水平。分析统计数据显示,网络带宽有限是导致速度减慢的主要原因。CPU使用率保持在6%以下,但NetworkIn和NetworkOut似乎在这段时间内分别达到了60MB和200MB的峰值。虽然我不是一个网络预期,但一些在线阅读似乎表明,通过一个网卡的所有流量可能是有限的网络带宽的主要原因。这是真的吗?在不同类型的EC2实例上托管站点是否有助于增加网络带宽?以下是networkIn和networkOut指标在高负载下的显示情况。

发布于 2016-04-02 07:07:30
如果您受到带宽的限制,那么当您达到带宽限制时,该图形将变得平坦。此外,正如其他人指出的那样,只有1MB/s的速度和3MB/s的速度,我可以在t2.microto外部互联网上做更多的事情。
系统对每个请求做了什么?下面是我要看的一系列事情,按顺序排列:
每GB基数可提供3个IO/s,但可能会激增至3000个,直到IO配额耗尽为止。
这并不是不可能的,但如果您的请求非常小,您可能会在网络层遇到连接创建或每秒数据包数的瓶颈。
发布于 2015-03-31 23:04:43
是的,亚马逊有一个弹性网卡网络接口的概念。虽然您可以为实例添加NIC,但它仍然是一个逻辑接口。网络管道的供应和可用性在很大程度上取决于(完全取决于)您选择的类型实例。Amazon有几种类型/系列的实例,如R、I、C、D、G-分别在内存、IO、计算、密集存储、GPU上进行了优化。你可以看看你能不能挤到max。他们中的一员。
不管你选择哪种类型作为实例类型,你基本上都会达到一个阈值,并且不能扩展到超过某个点。与内存/ CPU等其他可伸缩性因素相比,可伸缩性尤其独特。
修改您的体系结构,而不是拥有非常大的实例,而不是后面的几个中型或大型实例和ELB。
发布于 2016-10-26 05:20:10
你的NetworkIn和Out实际上是大于50mb/s的。如果你的CPU和内存保持在合理的范围内,那么你的实例就很好。你还应该检查你的数据库的连接日志(假设你在你的系统上运行一个RDB ),速度变慢实际上可能是因为你的数据库响应太慢,导致web服务器响应更慢。
此外,您应该使用AWS负载均衡器运行您的系统,并在网络输入/输出上使用触发器进行设置和自动缩放。这样,就会启动一个辅助实例来帮助临时增加网络上的负载。如果根本原因确实是数据库上连接的增加,那么负载均衡器将不会帮助解决问题。相反,你想改进缓存设置,这样每个用户/网站连接的数据库负担就会更小。
https://stackoverflow.com/questions/29371296
复制相似问题