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

Sockets taking too much time to connect after sometime on AWS EC2 (t3a.small)

我已经在 Amazon EC2 t3a.small 实例上部署了 ws 个套接字。当我 start/restarts 插座时,它在一段时间内工作得很好。但是几分钟后,当我尝试连接到套接字时,连接时间超过一分钟,有时会触发超时。

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

当我检查这两个实例的性能时,RAM/CAPU 使用率并不高。 RAM 使用率约为 300mb,并且两个内核的使用率也未达到 100% CPU。所以我不确定可能是什么问题。

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

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


更新:

看来实例大小不是问题。即使将其更改为 t3a.medium 一段时间后它也会变慢。所以弄清楚可能是什么问题。

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

所以我调整了 Apache httpd 以允许更多并发连接。

<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>

请注意,您可能还需要更改 OS 的最大打开文件数。在 Ubuntu 中默认为 1024。将其设置为最大 (65536)