我们有一台安装了 8GB RAM 的 Dell Poweredge R210 服务器。这是 Debian Squeeze 的全新安装,几乎只通过 aptitude 安装 build-essentials 和 Xen 4.0.1。内核版本为 2.6.32-5-xen-amd64。
我们的内存中有 1GB 是“缺失的”,不可用,输出为dmesg | grep Memory
:
[ 2.069861] Memory: 6842924k/8132468k available (3147k kernel code, 1058596k absent, 230948k reserved, 1908k data, 600k init)
以下是输出free -m
:
total used free shared buffers cached
Mem: 7195 1349 5846 0 3 28
-/+ buffers/cache: 1316 5878
Swap: 3813 0 3813
然而,如果我使用原始内核(2.6.32-5-amd64),尽管还有 1GB 缺失,我还是可以使用完整的 8GB - 请注意显然有 9.5GB(!) 可用:
[ 0.000000] Memory: 8177956k/9437184k available (3079k kernel code, 1058596k absent, 200632k reserved, 1892k data, 592k init)
和free -m
:
total used free shared buffers cached
Mem: 7995 91 7904 0 2 22
-/+ buffers/cache: 66 7929
Swap: 3813 0 3813
我知道缺失记忆的情况基本上是记忆图中的记忆漏洞https://bugzilla.redhat.com/show_bug.cgi?id=598290- 但是为什么同一硬件上的不同内核会表现出如此不同的行为?
所以,我的问题是:
1)这可能是内核错误吗?因此我应该报告它吗?
2) 是否有希望恢复内存,或者找出 Xen 内核如何/为何占用它并修复它?
谢谢你的帮助!
答案1
- 不
- 不是。因为 Xen 将此内存分配给私人用途,并且还保留每个虚拟地址空间的一小部分固定部分。
问候