与端点通信的网络错误。限制 CPU 使用

Network error communicating with endpoint. Limiting CPU usage

我在 EC2 AWS 实例上有一个 FastAPI 运行。我的端点运行良好,但我在使用一个端点同时处理请求 运行 时遇到问题。

这个端点大约需要 10 秒才能完成,并且使用了很多 cpu(它是关于神经网络过程的)。我有 运行 多达 5 个同时调用此端点且没有错误,并且所有任务都在 10 秒左右完成。但是,如果我进行第六次,系统就会开始出现故障。我开始获得两个错误:

"Network error communicating with endpoint"

"Endpoint request timed out"

然后,EC2 实例甚至无法通过 ssh 访问,尽管它在 EC2 面板中说它是“可用的”。关于如何解决这个问题的任何想法?也许 API 将 CPU 功率限制在 90%?

为了与此 EC2 实例通信,我通过 API 网关发送信息。没有比我更多的连接,因为我是唯一访问它的人。

注意: 如果我做 top 我看到 5 个调用 CPU 大约是 380%(它有 4 个 cpu),但是 ram上升到 83%。我想这是我的 RAM 使用问题?

感谢您的评论。我发现我与 torch 一起使用的模型正在内存中保存梯度,所以我不得不 运行 它与:

 with torch.no_grad():

如果您有兴趣,可以在 . You can also look at the size of the variables using 之后了解并限制您的 python 应用程序的 RAM。但是,我只能注意到第一个 link.

内存泄漏

RAM 稳定后,我无法得到更多这些错误,尽管由于 CPU 工作量,现在是创建队列的时候了...