Nginx
使用 Nginx/Celery/Django 的 EC2 上的高 CPU 負載導致伺服器失敗
我正在使用 Nginx 和 uWSGI 在 EC2 伺服器上執行 Django Web 應用程序。我也讓 Celery 執行一些後台任務(沒有 CRON 作業,只是偶爾的使用者操作)。
該應用程序處於早期封閉測試階段,目前沒有活躍使用者。
在過去的三天裡,伺服器在經歷超高 CPU 負載後會倒塌,似乎是隨機的(見螢幕截圖)。
在此之前,該應用程序執行數週都沒有問題。我對網站進行了一些程式更改,但沒有對伺服器配置進行更改(主要是合併模型)。
我試圖從日誌中提取一些東西(Nginx access.log、error.log 和 Django debug.log),但我沒有看到任何錯誤或奇怪的東西(現在無法訪問日誌)。
此外,如果我事先沒有重新啟動伺服器,我在遷移模型更改(在 venv 中)時遇到了類似的效果。有時,即使重新啟動伺服器,它也會變得如此緩慢,我不得不等待幾分鐘才能重新啟動 Celery。
我需要幫助才能找到調查問題的起點。有任何想法嗎?
經過一些測試和評估,我看到我的驅動器空間已滿 99%。通過刪除 Django 的調試日誌文件以及其他一些日誌文件對其進行清理後,伺服器變得更加穩定,在過去 24 小時內沒有發生任何事件。
它確實迫使我實施了一些額外的措施來通過 Nginx Amplify 進行監控,這是一個幫助擷取伺服器問題的好工具。
我相信 CPU 進入超速狀態是為了彌補空間不足,清理驅動器解決了這個問題。