Linux

Xen dom0 報告設置了 dom0_mem 的 RAM 數量不正確

  • October 28, 2013

我已經對此進行了相當多的搜尋,但沒有找到任何可以回答我的問題的東西。

我有一個具有 6GB RAM 的系統,用作 Xen 伺服器。作為參考,它執行 Ubuntu 12.04。我在 /etc/default/grub 中設置了核心參數 dom0_mem:512M,max:512M 如下:

GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=min:512M,max:512M"

我已經嘗試過這種變化,但結果相同。

我的問題是這樣的:

通過上述設置,dom0 在所有應用程序中報告的 RAM 量為 422M。

cat /proc/meminfo 給出以下內容:

$ cat /proc/meminfo
MemTotal:         432472 kB
MemFree:           54144 kB
Buffers:           17640 kB
Cached:           220104 kB
SwapCached:        30172 kB
Active:           136500 kB
Inactive:         167780 kB
Active(anon):       6156 kB
Inactive(anon):    60516 kB
Active(file):     130344 kB
Inactive(file):   107264 kB
Unevictable:          52 kB
Mlocked:              52 kB
SwapTotal:       1794044 kB
SwapFree:        1682012 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:         39572 kB
Mapped:             8048 kB
Shmem:               136 kB
Slab:              44324 kB
SReclaimable:      22012 kB
SUnreclaim:        22312 kB
KernelStack:        1280 kB
PageTables:         3840 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     2010280 kB
Committed_AS:     329192 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      313988 kB
VmallocChunk:   34359417340 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      524696 kB
DirectMap2M:           0 kB

top、htop、free -m 和 byobu 的 RAM 監視器都報告相同的數量。

起初我以為這是因為板載顯卡借用了一些記憶體,但現在已經切換到專用 GPU 並且它仍然存在。

這是正常行為,還是出了什麼問題?只有大約 100MB 的 RAM “消失”了,我不知道它去了哪裡。我了解並非所有RAM 都可用於分配是正常的,但是系統是否真的佔用了相對於可用 RAM 量相對較高的量?

編輯 我剛剛注意到xl list確實將 dom0 報告為具有 511M 的 RAM,因此看來記憶體分配正確,而區別只是系統保留的記憶體。

這是很正常的事情。Dom0 的預設記憶體分配由公式控制,該公式大約等於 502+0.0205*物理記憶體(MB)(在 xen 的情況下)。

對 Dom0 的記憶體分配也可以從 grub 完成,如範例中所示。在所有情況下,您都會看到系統 (xen) 消耗的大約 100 MB 記憶體“失去”。

如果您可以訪問 dmesg 命令輸出,您可以看到 100 MB 記憶體如何被保留並變得不可用的詳細資訊。請檢查前 100/150 行以查看記憶體保留/分配的詳細資訊。例如,我的 Dom0 上的一行 pf dmesg 總結如下:-

記憶體:899140k/1010076k 可用(5201k 核心程式碼,476k 不存在,110460k 保留,4718k 數據,1592k 初始化)。

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