Kvm
KVM 和交換空間
假設以下場景:具有 2 GiB 的主機使用 KVM 執行幾個客戶機。每個客人通常不需要太多記憶體,他們每個人都被分配了 256 MiB,並且執行的服務主要是在他們的拇指上旋轉。然而,偶爾客人需要更多的記憶。現在,每個來賓只有很少的 RAM,但有自己的交換空間。我注意到使用了一小部分交換。我從來沒有遇到過這種配置問題,只是出於好奇:
什麼是最優的交換分配策略?
- 從各自的磁碟中為每個來賓分配其自己的交換空間,並為來賓分配來自主機的少量記憶體。(這就是我現在正在做的事情。)
- 為主機分配更多的交換空間,而沒有給來賓,並為來賓分配更多的記憶體。
記憶體膨脹是否有助於提高記憶體性能?
“偶爾的客人需要更多記憶體”聽起來像是過度使用記憶體的一個很好的應用。這個想法是您為每個客人分配大量記憶體(超出您實際可以分配的記憶體),因為他們通常不使用它。然後,您進行數學運算,以確保您有足夠的交換空間,以便客人在最壞的情況下實際上可以換出到磁碟,在這種情況下,他們都確實使用了所有的記憶體。
交換空間在主機上,它需要服從
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 的交換空間專用於主機(對於那麼小的主機記憶體,建議這樣做)。始終首先測試這些類型的設置,以確保您的機器可以處理它們。對它們進行基準測試甚至更好,並且可以讓您嘗試不同的負載並選擇最有效的負載。