部署到 AWS 的 Vapor App 在高负载后卡住

部署到 AWS 的 Vapor App 在高负载后卡住

我将 Vapor 3 Swift 应用程序部署到 AWS 的 Docker 容器中。我遵循指令,应用程序已成功部署。此外,我在同一个 AWS 账户上运行了 RDS PostgreSQL 数据库。

一切都很好,直到我们使用炮兵。由于某些未知原因,在收到一定数量的 Artillery 请求(约 1000 个)后,后端完全冻结 - 它不响应任何请求。我在 EC2 控制台中没有收到任何警告或错误 - 根据指标,一切都很好。

这似乎不是数据库问题,因为同时我在本地运行 Vapor,连接到同一个 RDS DB,一切正常。然而,这条线不断出现在数据库日志

严重:由于管理员命令而终止连接

我不确定这是否是导致整个问题的原因,因为正如我提到的,它在本地运行得很好。日志中没有显示其他错误。当我停止任务并再次运行它时,后端恢复工作。

这是 AWS 的微妙之处吗?我将非常感激任何帮助。

答案1

尝试增加 swift 进程的文件描述符。在主管配置文件中添加

minfds=1048576

在监督部门之下。

相关内容