amazon-web-services - AWS 网络输出
问题描述
我们的网络应用程序有 5 个页面(登录、仪表板、地图、设备、通知)
我们已经为此应用程序进行了负载测试,负载测试脚本执行以下操作:
- 登录并转到仪表板页面
- 点击地图
- 单击设备
- 点击通知
我们在 AWS 中有一个基本的免费计划。
在执行负载测试时,直到大约 100 个用户,我们没有收到任何错误。请看下图。我们可以看到 NetworkIn,CPUUtilization 似乎是正常的。但是 NetworkOut 显示 846K。
但是当达到大约 114 个用户时,我们开始在地图页面中出现错误(以红色突出显示)。在那段时间里,似乎只有 NetworkOut 很高。请看下图。
我们想知道 NetworkOut 的最佳分数是多少,如果这个数字很高,有什么办法可以减少这个数字?
如果您需要更多信息,请告诉我。在此先感谢您的帮助。
解决方案
您正在使用一个t2.micro
实例。
此实例类型对 CPU 有限制,这意味着它适用于突发工作负载,但持续负载会消耗所有可用的 CPU 积分。因此,它可能在长时间的持续负载下表现不佳。
该实例还具有可能影响服务器吞吐量的有限网络带宽。虽然所有 Amazon EC2 实例的带宽分配都是有限的,但t2.micro
它们的t2.nano
带宽分配特别低。您可以在向/从实例复制数据时看到这一点,它可能会在测试期间影响您的工作负载。
t2
家庭,尤其是低端的家庭,不是生产工作负载的好选择。它非常适合有时很高但不是一直很高的工作负载。它的成本也特别低,但请注意,如此低的成本需要权衡取舍。
看:
- Amazon EC2 T2 实例 – Amazon Web Services (AWS)
- 可突增性能实例的 CPU 积分和基准性能 - Amazon Elastic Compute Cloud
- 可突增性能实例的无限模式 - Amazon Elastic Compute Cloud
也就是说,图表上显示的网络吞吐量是您的应用程序的结果。虽然这t2
可能会限制吞吐量,但它不对图表上的峰值负责。为此,您需要调查应用程序本身使用的资源。
推荐阅读
- c# - Websockets 将 byte[] 转换为字符串
- javascript - 将随机选择的图像显示给班级
- swift - 二元运算符“/”不能应用于“CGSize”和“Int”类型的操作数
- swift - 取消初始化时强引用不会变成弱引用
- python - python中的selenium - 一次超时导致所有后续请求超时
- android - API 总是在一分钟内失败
- c++ - 当前步骤:构建 Tasks.json 文件
- javascript - 如何在 window.open 函数中编写 javascript 变量
- python - python请求,我得到的响应状态与邮递员的结果不同。
- javascript - D3:调整 x 轴大小并重新定位圆