Memory

帶有 Jupyter 筆記本的 Python 伺服器記憶體不足

  • January 9, 2019

我對使用伺服器很陌生,但我最近遇到了瓶頸,不得不在雲上進行計算。使用伺服器 2 週後,似乎存在一些記憶體問題。

我將伺服器用於 Jupyter 筆記本和大文件的儲存。我將大文件載入到我的 Jupyter 筆記本中,並且在前 2 週內我的文件載入沒有問題。但是今天,我在記憶體問題之後遇到了記憶體問題。它太糟糕了,即使我關閉了所有活動的筆記本並執行了我的前幾本筆記本,由於記憶體問題,這些筆記本甚至都沒有工作。

使用 TOP 命令,它說我有大約 90% 的可用記憶體。但是,它不會讓我執行過去兩週一直在執行的程式碼而沒有問題。

所以我想知道是否應該定期重啟伺服器或解決這個問題。或者,如果它是別的東西。

謝謝!

如果您在 Jupyter 筆記本中載入文件並將其內容儲存在變數中,則只要變數存在且筆記本正在執行,底層 Python 程序就會為該數據分配記憶體。如果Python 的垃圾收集器檢測到不再需要數據,它將再次釋放記憶體(在大多數情況下)。如果它被刪除,例如使用del,如果變數被其他東西覆蓋或者如果它超出範圍(函式末尾的局部變數),就會出現這種情況。

如果您在數週內將大文件儲存在(不同的)變數中,則數據將保留在記憶體中並最終填滿。在這種情況下,您實際上可能必須手動關閉筆記本或使用其他方法來刪除(全域)變數。

同一類問題的完全不同的原因可能是 Jupyter 中的錯誤。這些類型的錯誤稱為記憶體洩漏,通常發生在長時間執行的伺服器程序中。即使它們不太可能在 Python 中發生,也有一些 針對 Jupyter的錯誤 報告。在這種情況下,唯一的解決方法可能是重新啟動 Jupyter 程序。在其他情況下,我建議這樣做。

引用自:https://serverfault.com/questions/940262