Mysql
誰在使用交換記憶體,為什麼?
我的數據庫伺服器正在使用 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 的情況下交換使用量並不一定意味著您的系統執行速度比它可能慢。