Centos

CentOS下的KVM,swap耗盡,物理記憶體可用

  • November 16, 2013

我已經有一個測試 CentOS KVM 主機執行了大約一周,現在有 3 個 CentOS 來賓。有 12GB 物理 RAM,其中大約 7.5GB 實際分配給虛擬機。這些虛擬機甚至還沒有被使用,因為伺服器仍處於測試階段,但我注意到在過去 24-48 小時內交換使用率一直在攀升。現在看起來已經筋疲力盡了。

這是輸出free

# free -m
            total       used       free     shared    buffers     cached
Mem:         11905      11749        155          0         81       4632
-/+ buffers/cache:       7035       4869
Swap:         2047       2047          0

因此,您可以看到物理記憶體已全部使用,但它被用作記憶體記憶體,我認為這通常很好,因為如果應用程序需要它,它將被釋放。

我執行了在這個答案中找到的 shell 腳本,它列出了 3 個qemu-kvm程序。

為我配置了伺服器,只為交換分配了 2GB 的邏輯卷,通常我喜歡匹配高達 8GB 的​​物理記憶體。

是否值得擴展交換邏輯卷或添加單獨的交換卷?

這在 KVM 中很常見嗎?這不是我在其他 KVM 主機上看到的東西,所以我需要調整一個特定的設置嗎?

還有其他意見/建議嗎?

這很正常。空閒虛擬機使用的頁面將被交換,記憶體將用於記憶體。您可以將swappiness設置為零,這可能會以性能為代價(較小的記憶體)阻止像這樣使用交換。

這是 Red Hat 的建議(有許多 YMMV):

交換空間計算如下:

計算所有來賓總和所需的記憶體量 - 在此範例中:(50 個來賓 * 每個來賓 1GB 記憶體)= 50GB

將客戶記憶體量添加到主機作業系統和主機最小交換空間所需的量 - 在此範例中:50GB 客戶記憶體 + 4GB 主機作業系統 + 4GB 最小交換 = 58GB

從系統上的物理 RAM 量中減去這個量 - 在這個例子中 58GB - 32GB = 26GB

答案是需要分配的交換空間量。在這個例子中 26GB

此範例未考慮核心同頁合併 (KSM),這將減少使用的記憶體量。

這裡 RH 說 4G 交換主機,但這裡他們建議 12G * 0.5 = 6G 交換給你。

如果您是 KVM 新手,我建議您閱讀 IBM 的KVM 最佳實踐文件。

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