Xen dom0 报告设置了 dom0_mem 后的 RAM 数量不正确

Xen dom0 报告设置了 dom0_mem 后的 RAM 数量不正确

我对此进行了大量搜索,但没有找到任何可以回答我的问题的东西。

我有一个具有 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 列表确实报告 dom0 具有 511M RAM,因此看起来内存分配正确,差异仅在于系统保留内存。

答案1

这是正常现象。Dom0 的默认内存分配由公式控制,该公式约等于 502+0.0205*物理内存 (MB)(对于 xen)。

也可以从 grub 中为 Dom0 分配内存,如示例中所示。在所有情况下,您都会看到“损失”大约 100 MB 的内存,这些内存被系统 (xen) 消耗。

如果您可以访问 dmesg 命令输出,您可以看到有关 100 MB 内存如何被保留并变得不可用的详细信息。请检查前 100/150 行以查看内存保留/分配的详细信息。例如,我的 Dom0 上的 dmesg 中的一行总结如下:-

内存:899140k/1010076k 可用(5201k 内核代码、476k 缺失、110460k 保留、4718k 数据、1592k 初始化)。

相关内容