当需要太多内存时,我在 RHEL5 上的 Xen 3.4 上的 DomU 崩溃:
(XEN) p2m_pod_demand_populate: Out of populate-on-demand memory!
(XEN) domain_crash called from p2m.c:1091
(XEN) Domain 15 (vcpu#3) crashed on cpu#2:
(XEN) ----[ Xen-3.4.0 x86_64 debug=n Not tainted ]----
(XEN) CPU: 2
(XEN) RIP: 0010:[<ffffffff80062c02>]
(XEN) RFLAGS: 0000000000010216 CONTEXT: hvm guest
(XEN) rax: 0000000000000000 rbx: 0000000000000001 rcx: 000000000000003f
(XEN) rdx: 0000000004812000 rsi: ffff810001000000 rdi: ffff810004812000
(XEN) rbp: 0000000000000282 rsp: ffff810007635cf0 r8: ffff810037c0288e
(XEN) r9: 00000000000023e1 r10: 0000000000000000 r11: 0000000000000001
(XEN) r12: ffff81000000cb00 r13: ffff8100007e43f0 r14: ffff81000000fc10
(XEN) r15: 00000000000280d2 cr0: 0000000080050033 cr4: 00000000000006e0
(XEN) cr3: 0000000006760000 cr2: 0000000003d47078
(XEN) ds: 0000 es: 0000 fs: 0000 gs: 0000 ss: 0000 cs: 0010
我可以以某种方式禁用 HVM 的按需填充吗?Xen 3.3 没有表现出这样的行为......
这里有一些很好的细节:
http://lists.xensource.com/archives/html/xen-devel/2008-12/msg01030.html
这似乎表明这仅在您过度使用时才会发生。当然,如果你的 domU 是 linux,你真的应该考虑在 paravirt 模式下运行以获得性能优势。
简单的方法:
在您的配置中 make maxmem=memory,这会禁用 PoD 驱动程序。
否则,您将需要在来宾操作系统中安装气球驱动程序。