Kvm-Virtualization

KVM 管理程序交換

  • September 16, 2015

我已經設置了第一台 CentOS 7 KVM 主機大約一年了,它是一台雙四核機器,具有 32GB 物理記憶體。我有十幾個虛擬機正在執行,總分配的記憶體為 23GB。這個系統有 4GB 的交換空間,這裡是目前的使用細節……

KiB Mem:  32773552 total, 32564628 used,   208924 free,     2224 buffers
KiB Swap:  4603836 total,  3262108 used,  1341728 free.  9606248 cached Mem

我讀過你真的不想要大量的交換,因為如果它根本不應該使用交換。我相信上面顯示現在正在使用超過 3GB,這正常嗎?我在這台伺服器上沒有任何性能問題。我目前正在建構一個新伺服器並進行比較以查看在應該具有相似負載的新伺服器上使用的最佳交換量是多少?

它並不像乍看起來那麼簡單。未使用的記憶體是浪費的記憶體,Linux 甚至對“未使用的”記憶體也採用了這種方法。這意味著實際分配但有一段時間未使用的記憶體可能會被換出。由於最近不需要它,因此推測它不會對性能產生太大影響。實際上,這還有一點。Linux 會嘗試提前(在空閒時)交換未使用的數據,同時仍將其保留在 RAM 中。這樣,幾乎可以立即釋放 RAM(當要分配更多記憶體時),而不會對從交換中檢索數據產生性能影響(如果不需要這些舊數據)。這稱為交換記憶體,可以通過執行找到cat /proc/meminfo | grep SwapCached)。

Linux 交換行為由sysctl vm.swappiness(參見維基百科)控制。它的範圍從 0(根本不交換)、1(在最近的核心上,僅在絕對必要時交換)到 100(非常積極地交換數據)。

如果您的伺服器執行良好且沒有性能問題的跡象,請保持原樣。如果您發現任何問題,可以嘗試調整此值。

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