我已经做了一些相关的研究,但没有发现任何答案。
我有一个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监视器都报告相同的数量。
起初我以为这是因为机载graphics借用了一些内存,但现在已经切换到一个专用的GPU,它仍然存在。
这是正常的行为,还是有什么不对劲? 这只是大约100MB的“消失”,我不知道它去了哪里。 我明白,并不是所有的 RAM都可用于分配是正常的,但是系统真的会占用相当高的可用内存量吗?
编辑我刚刚注意到, xl列表报告dom0有511M的RAM,所以看起来内存正在被正确分配,而且不同之处在于系统保留的内存。
这是一个正常的事情发生。 内存到Dom0的默认分配由约等于502 + 0.0205 *物理内存(MB)(在xen的情况下)的公式控制。
这个内存分配到Dom0也可以在grub中完成,就像在这个例子中一样。 在所有的情况下,你会看到系统(xen)消耗的大约100 MB内存的“损失”。
如果您可以访问dmesg命令输出,那么您可以看到详细信息如何保留100 MB内存并变得不可用。请检查前100/150行以查看内存预留/分配的详细信息。 例如,我的Dom0上的一行pdf dmesg总结如下:
内存:899140k / 1010076k可用(5201k内核代码,476k缺席,110460k保留,4718k数据,1592k初始化)。