我对此进行了大量搜索,但没有找到任何可以回答我的问题的东西。
我有一个具有 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 初始化)。