Memory-Usage

當“免費”交換空間幾乎用完時,在 Ubuntu 網路伺服器上意味著什麼?

  • August 4, 2010

全球資訊網〜:免費
記憶體的已用空閒共享緩衝區總數
模因:2048 1848 199 0 21 274
-/+ 緩衝區/記憶體:1552 496
交換:4095 4086 9

在我執行 apache/nginx/MySQL 並為大量 Web 客戶提供服務的 Ubuntu 生產網路伺服器上,看起來我們的免費交換記憶體空間幾乎全部用完。這是什麼意思?我知道我們應該為伺服器添加更多的 RAM/記憶體,但我想知道如果目前使用繼續下去會有多糟糕?本來打算等到這個週末,Swap空間用完,伺服器會當機嗎?磨磨蹭蹭?跑得很慢?

這意味著你的記憶體不足。如果由於持續的磁碟活動,它還沒有執行得非常慢,那麼您可能有一些程序分配了記憶體但沒有使用它,然後它被換出。如果它用完,系統將開始隨機殺死程序(搜尋 OOM Killer 以了解有關 OOM 如何準確選擇要死的內容的大量討論)。

那麼有哪些補救措施可以解決這個問題呢?

使用 top 之類的命令來確定是什麼耗盡了所有記憶體。確定記憶體佔用者是否真的需要記憶體,或者它是否是一個錯誤。如果是錯誤,請嘗試查找修復程序。

如果您無法承受添加記憶體的中斷,則可以檢查是否可以承受短暫的中斷,然後殺死/重新啟動該程序。

使用 Linux,您可以創建交換文件,交換不需要在自己的分區上。因此,如果您想/需要添加更多交換,您可以很容易地做到這一點,而無需重新啟動。

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