Libvirt 記憶體管理主機與訪客

Libvirt 記憶體管理主機與訪客

我設定了兩個來賓作業系統,一個 ubuntu 盒子專門用作虛擬機器主機。它有兩個實體 CPU(每個 6 核心)、16 GB RAM 和 3 個硬碟。主機作業系統位於 60GB SSD 上,而來賓作業系統位於分為兩個分割區的單獨 HDD 上。第一個分割區保存客戶作業系統的原始 qcow 映像文件,第二個分割區作為區塊裝置分配給客戶。 (對於「程式」和「資料」)我在 Linux 用戶端上啟用了記憶體膨脹,但在 Windows 上則沒有。

昨天我第一次遇到記憶體不足的情況,所以我決定在自己的電腦上即時觀察訪客的記憶體使用情況。所以我有兩個 htop 在兩個 putty 視窗中運行,如附圖所示。圖片的頂部是主機,底部是訪客之一(linux)有幾件事我不明白:

  • 在主機上,RES 列顯示第一個客人為 5778M,另一個客人為 4274M,對我來說最多可達約 10G,但圖片頂部的 Mem 行顯示 6.9G,這很奇怪,而且底部的客戶端 htop說560M內存正在使用。 (560M!= 5778M)

我已經閱讀了有關虛擬化的 redhat 文檔,並且說我應該通過將分配給來賓的內存+視頻 RAM +“一些”開銷(無法準確確定)相加來計算來賓所需的 RAM 量,因此使用上面的數字:560M 被訪客使用+ 16M 顯存約為580M,所以我的情況下的「一些」開銷是5.2G?

5778M不是linux guest可以使用的總內存,8G是在域xml檔中設定的,所以我並不沮喪。然而。

今天早上,當我重新啟動 Linux 虛擬機器時,主機上的 RAM 使用量開始約為 2G,此後一直在攀升。來賓作業系統開始時約為 450M,後來達到 560M。

我什至讀到,為主機分配交換文件可以幫助解決內存不足問題,因此我創建了一個 32G 交換文件,並在主機上的 sysctl 中將交換性設置為 20。

但我仍然不明白來賓和主機之間的記憶體使用/分配/任何內容。

在該領域有更多經驗的人可以為我指出正確的方向/教程/維基百科/whatevertoread嗎? qemu 主機 訪客 htops

相關內容