在AWS EC2(t3a.small)上的某个时间后,套接字连接花费了太多时间



我已经在AmazonEC2t3a.small实例上部署了ws套接字。当我启动/重新启动套接字时,它在一段时间内工作得非常好。但几分钟后,当我尝试连接到套接字时,连接需要一分钟以上的时间,有时还会触发超时。

所以我将实例更改为t3a.medium,现在它运行得很好。即使在几个小时后,我也没有看到连接到套接字的任何延迟/超时。

当我检查这两个实例的性能时,RAM/CAPU的使用量并没有那么多。RAM使用量约为300mb,而且两个内核的CPU使用率都没有达到100%。所以我不确定问题出在哪里。

我不认为更新实例类型是正确和可扩展的解决方案,随着流量的增加,我想我会面临同样的问题吗?

我想知道什么是瓶颈,我需要在EC2中设置什么配置,它是可扩展的?


更新

实例大小似乎不是问题。即使在将其更改为t3a.medium后,它也会在一段时间后减速。所以要弄清楚问题出在哪里。

显然,Apache2设置存在问题,该设置允许最多150个并发连接。

因此,我调整了Apachehttpd以允许更多的并发连接。

<IfModule mpm_event_module>
StartServers 10
MinSpareThreads 25
MaxSpareThreads 750
ThreadLimit 1000
ThreadsPerChild 750
# MaxRequestWorkers aka MaxClients => ServerLimit *ThreadsPerChild
MaxRequestWorkers 15000
MaxConnectionsPerChild 0
ServerLimit 20
ThreadStackSize 524288
</IfModule>

请注意,您可能还需要更改操作系统的最大打开文件数。默认情况下,在Ubuntu中是1024。将其设置为MAX(65536(

最新更新