Kvm

KVM 和交換空間

  • June 17, 2014

假設以下場景:具有 2 GiB 的主機使用 KVM 執行幾個客戶機。每個客人通常不需要太多記憶體,他們每個人都被分配了 256 MiB,並且執行的服務主要是在他們的拇指上旋轉。然而,偶爾客人需要更多的記憶。現在,每個來賓只有很少的 RAM,但有自己的交換空間。我注意到使用了一小部分交換。我從來沒有遇到過這種配置問題,只是出於好奇:

什麼是最優的交換分配策略?

  1. 從各自的磁碟中為每個來賓分配其自己的交換空間,並為來賓分配來自主機的少量記憶體。(這就是我現在正在做的事情。)
  2. 為主機分配更多的交換空間,而沒有給來賓,並為來賓分配更多的記憶體。

記憶體膨脹是否有助於提高記憶體性能?

“偶爾的客人需要更多記憶體”聽起來像是過度使用記憶體的一個很好的應用。這個想法是您為每個客人分配大量記憶體(超出您實際可以分配的記憶體),因為他們通常不使用它。然後,您進行數學運算,以確保您有足夠的交換空間,以便客人在最壞的情況下實際上可以換出到磁碟,在這種情況下,他們都確實使用了所有的記憶體。

交換空間在主機上,它需要服從

host swap space = sum of all guest memory + recommended host swap space

為了它是安全的。

因此,如果您有 10 個客人和 2 GiB 的 RAM,您可以嘗試類似的東西

  • 每個來賓 512 MiB RAM(512 * 10 = 5120 MiB 總計)
  • 主機上的 2GiB 交換

這意味著您的主機交換空間至少應該能夠512 * 10 + 2048 = 7168 MiB安全地處理這個問題,假設您可以將 2GiB 的交換空間專用於主機(對於那麼小的主機記憶體,建議這樣做)。

始終首先測試這些類型的設置,以確保您的機器可以處理它們。對它們進行基準測試甚至更好,並且可以讓您嘗試不同的負載並選擇最有效的負載。

引用自:https://unix.stackexchange.com/questions/137509