Kvm-Virtualization
一個qemu磁碟記憶體寫回模式使用多少記憶體?
我將 Proxmox 與 ZFS ZVOL 或 LVM-thin 用於磁碟捲,據說使用磁碟記憶體寫回模式會增加記憶體使用量超過分配。
有沒有辦法在 Linux KVM 中檢查、限制和增加 qemu 磁碟記憶體寫回模式的記憶體使用量?
在寫回模式下,QEMU/KVM 通過主機的頁面記憶體寫入,基本上與任何其他使用者空間程序一樣。要獲取有關頁面記憶體內容和活動的資訊,您可以發出:
[user@localhost ~]$ grep -i "^cache\|dirty\|writeback:" /proc/meminfo Cached: 84548 kB Dirty: 0 kB Writeback: 0 kB
檢查輸出,我們可以看到:
- **Cached:**是用於讀取記憶體的記憶體量。如果您在客戶機中讀取某些內容,它將在主機記憶體記憶體和客戶機自己的頁面記憶體中結束。有人認為這種雙重記憶體是一種資源浪費;實際上,如果在記憶體壓力下,只讀記憶體可以立即丟棄。另一方面,主機的記憶體通常比客戶的記憶體大得多,因此可以通過打開 QEMU 寫回記憶體(與直接訪問相比)獲得淨性能增量;
- **Dirty:**表示要寫入(即:改變)的記憶體量。要回收此記憶體,系統必須將更改寫出到磁碟。這意味著,根據底層 IO 子系統,臟頁回收可能很慢;
- **寫回:**它是系統目前寫入磁碟的記憶體量,包括記憶體壓力(和臟頁回收)和時間(最多 30 秒後,臟頁被寫回磁碟)。
總而言之,pagecache 的奇妙之處在於它由主機系統自動管理以響應記憶體壓力和其他因素(即:各種
sysctl
條目)。由於它通常會導致來賓系統的淨性能提升,因此我將大多數虛擬機設置為寫回記憶體。可以在這裡找到更多資訊