Amazon web services AWS EC2上的Websocket性能

Amazon web services AWS EC2上的Websocket性能,amazon-web-services,amazon-ec2,websocket,Amazon Web Services,Amazon Ec2,Websocket,我对AWS EC2上的websocket性能有问题 我使用WebSocket来监听传入网络速率为100-300 Kb/秒的服务器。只是倾听,而不是发送。在EC2上,每隔10-20分钟,我就会断开连接(代码1006-异常连接丢失-未给出原因)。我已经用t2.micro和t2.large进行了测试(我认为对于这样一个小任务来说应该足够了)。我使用美国东部,应该靠近源头 相比之下,当我在不同国家的个人电脑上运行同一个应用程序时,每隔几个小时就会断开一次连接。我使用了两个不同的库(pythonaioht

我对AWS EC2上的websocket性能有问题

我使用WebSocket来监听传入网络速率为100-300 Kb/秒的服务器。只是倾听,而不是发送。在EC2上,每隔10-20分钟,我就会断开连接(代码1006-异常连接丢失-未给出原因)。我已经用t2.micro和t2.large进行了测试(我认为对于这样一个小任务来说应该足够了)。我使用美国东部,应该靠近源头

相比之下,当我在不同国家的个人电脑上运行同一个应用程序时,每隔几个小时就会断开一次连接。我使用了两个不同的库(pythonaiohtp和websockets)来确认我有相同的问题

这表明EC2上存在网络质量问题。然而,我不确定websockets任务是否要求很高,所以这是令人惊讶的


以前有人经历过吗?我还可以做哪些诊断来更好地了解根本原因?

两端的数据包嗅探器(如wireshark)应该可以发现问题。。。一方面,帮助不大,但仍然有价值。我怀疑这是容量还是质量问题,但更确切地说,网络正在破坏一个它认为已经丢失的连接,尽管为什么它会得出这样的结论还不清楚。。。但是所有有状态防火墙(例如安全组)都会破坏它们认为被放弃的连接,因为状态表的容量有限。我比较了t2和m5实例类型,似乎使用m5解决了问题。m5有更多的带宽。令人惊讶的是,我不得不将这些更昂贵的机器仅仅用于一个小的websocket应用程序。这是出乎意料的。我每天通过一些t2实例运行数百万个HTTP(S)请求(运行HAProxy,它收集多个计时器以分析两个方向的连接性能),从未遇到任何与网络相关的问题。这会消耗多少CPU?我开始怀疑我超过了t2的CPU额度,因此在良好的网络中耗尽了CPU。啊,是的,如果你耗尽了你的信用余额,那就可以了。HAProxy是用C编写的,并且使用epoll,因此非常高效。t2类有一个新的特性,叫做t2unlimited,它取消了信用上限,允许您在余额接近耗尽时自动购买信用卡并收取一定费用。只有当你用完了标准的信用额度时,它才会花费你。