Virtualization

虛擬機中的虛擬記憶體(VM 中的交換文件?)

  • November 16, 2019

關於在虛擬機內部允許虛擬記憶體有什麼看法?

例如,一台具有 8 Gig 記憶體的主機,我可以執行 4 個 VM,每個 VM 具有 2 Gig(大約)並且不會有主機交換。但是,在每個 VM 中,我可以有一個 2Gig 的頁面文件,因此虛擬伺服器有 4Gig 的可用記憶體,2 個物理 2 個虛擬。

或者…我可以給每個 VM 4 Gig 的“記憶體”,讓主機使用 8Gig 的實際記憶體和 8G 的虛擬記憶體,並且每個 VM 中沒有頁面文件。每個 VM 仍將具有“4Gig”,但分頁將發生在主機上。

我的溫暖模糊部分說在每個客人中設置分頁就像你在真正的伺服器上一樣,你很好。但是我的分析方面看到了過度使用主機記憶體和在 VM 中沒有分頁的兩個主要優點。首先,虛擬記憶體的 IO 然後由更接近裸機的主機作業系統處理,因此應該更快。其次,只有在主機沒有可用記憶體時才需要分頁。如果客人想要 4Gig,但其他客人沒有使用他們的記憶體,則不需要分頁。

想法?

我不是虛擬化專家(事實上,我認為大多數情況下它是錯誤的工具),但從我所讀到的內容來看,您的客戶作業系統不應該被允許交換。防止交換的主要原因是它代表了一種猜測作業系統佔用主機大部分 IO 頻寬的方式。

此外,您不想向您的猜測作業系統假裝主機擁有比它擁有的更多的物理記憶體,因為這會導致主機大量交換,但是在猜測作業系統內部調試性能問題將非常困難,因為從他們的角度來看看來它們沒有交換,來賓中的任何作業系統級別工具都不會顯示它。

甚至可能使用 Xen 和 VmWare 之類的工具,由於使用了 baloon 記憶體驅動程序,您無法在主機作業系統上過度使用記憶體。

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