Mysql

誰在使用交換記憶體,為什麼?

  • November 19, 2010

我的數據庫伺服器正在使用 191MB 的交換空間 - 但也顯示了 182MB 的可用RAM

該盒子是一個專用的 MySQL 伺服器,執行 Debian Lenny。

如何確定誰以及為什麼填充交換空間而不是使用空閒 RAM?

Enter top,然後點擊f編輯可見欄位,點擊p顯示交換使用情況,然後點擊Enter返回程序顯示。使用Shift+<並按>交換使用情況對其進行排序。

Linux 根據需要很快被引用的可能性(以 Linux 的擬人化觀點)從 RAM 交換數據。你可以改變你的swappiness來增加/減少這種情況發生的可能性。

這不容易回答 - 看看這裡:https ://help.ubuntu.com/community/SwapFaq 。

您可以使用top命令查看交換使用情況、類型man top或 google。

至於為什麼 - 一種可能的情況如下。假設您有 1GB 或 RAM。然後載入 2GB 的應用程序(包括作業系統)。您將使用 1GB RAM 和 1GB 交換空間。然後您解除安裝 1.5GB 的應用程序。您會假設您將有 0.5GB RAM 空閒並且所有交換都是免費的。但是,情況可能並非完全如此。例如,如果您載入了 3 個應用程序:

  • A - 1 GB,
  • B-900 MB
  • C-100 MB

然後主動使用 A,很可能 B 和 C 都將被交換到磁碟,以使 A 使用 RAM 並因此速度更快。當您關閉 A 並切換到 C 時,您將使用 100 MB RAM,而 B 仍然換出(使用了 900 MB 交換),因為它不需要。

簡單地說 - 核心嘗試使用 RAM 並以它認為有效的方式進行交換。在仍有可用 RAM 的情況下交換使用量並不一定意味著您的系統執行速度比它可能慢。

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