我有一個在 EC2 AWS 實體上運行的 FastAPI。我的端點運行良好,但在處理與一個端點同時運行的請求時遇到問題。
這個端點大約需要 10 秒才能完成,并且使用了大量的 cpu(它與神經網路行程有關)。我已經對這個端點同時運行了多達 5 個呼叫,沒有任何錯誤,并且所有任務在 10 秒左右完成。但是,如果我去第六次,系統就會開始出現故障。我開始發現兩個錯誤:
“與端點通信的網路錯誤”
“端點請求超時”
然后,EC2 實體甚至無法通過 ssh 訪問,盡管它在 EC2 面板中說它是“可用的”。關于如何解決這個問題的任何想法?也許通過 API 限制了 90% 的 CPU 能力?
為了與這個 EC2 實體通信,我通過 API 網關發送資訊。沒有比我更多的聯系,因為我是唯一一個訪問它的人。
注意:如果我執行 top,我會看到 5 次呼叫的 CPU 大約是 380%(它有 4 個 cpu),但記憶體上升到 83%。我想這是我的 RAM 使用問題?
uj5u.com熱心網友回復:
謝謝你的意見。我發現我與 torch 一起使用的模型正在記憶體中保存漸變,所以我必須使用以下命令運行它:
with torch.no_grad():
如果您有興趣,您可以按照https://stackoverflow.com/a/41125461/1200914了解和限制您的 python 應用程式的 RAM 。您還可以使用https://stackoverflow.com/a/24455637/1200914查看變數的大小。但是,我只能注意到第一個鏈接的記憶體泄漏。
一旦 RAM 穩定下來,我就無法再遇到這些錯誤了,盡管由于 CPU 作業負載,現在是時候創建一個佇列了……
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/466545.html
標籤:Python 亚马逊网络服务 多线程 表现 快速API
