XenServer 6.1 中的内核参数 mem 和 dom0_mem

XenServer 6.1 中的内核参数 mem 和 dom0_mem

我们在生产环境中运行 XenServer 6.1,最近 OOM-killer 发生故障,最终导致我们的一台刀片服务器瘫痪。我注意到,在 oom-killer 实例的内核日志中,从 Dom0 的角度来看似乎有大量可用内存:

Jul 24 02:29:24 xenserver4 kernel: [2091564.792646] DMA free:2832kB min:76kB low:92kB high:112kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:16256kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:144kB slab_unreclaimable:7344kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? yes
Jul 24 02:29:24 xenserver4 kernel: [2091564.792676] lowmem_reserve[]: 0 698 2016 2016
Jul 24 02:29:24 xenserver4 kernel: [2091564.792696] Normal free:180036kB min:3340kB low:4172kB high:5008kB active_anon:0kB inactive_anon:0kB active_file:72kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:693240kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:14988kB slab_unreclaimable:385960kB kernel_stack:3568kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
Jul 24 02:29:24 xenserver4 kernel: [2091564.792728] lowmem_reserve[]: 0 0 10540 10540
Jul 24 02:29:24 xenserver4 kernel: [2091564.792747] HighMem free:829152kB min:512kB low:2132kB high:3756kB active_anon:181880kB inactive_anon:64204kB active_file:118268kB inactive_file:101744kB unevictable:55640kB isolated(anon):0kB isolated(file):0kB present:1357380kB mlocked:55640kB dirty:352kB writeback:0kB mapped:30296kB shmem:1052kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no

仅从 HighMem 的可用值来看,好像有 800MB+,加上 NormaL 的可用空间,约为 1GB。

我按照 Citrix 推荐的程序为 Dom0 分配额外的内存,以提高性能并在每个主机上运行更多的 VM:http://support.citrix.com/article/CTX134951

在内核行中,这两个值都设置了:

mem=1024G 
dom0_mem=2048M,max:2048M

这是完整的内核行:

# XenServer
kernel mboot.c32
append /boot/xen.gz mem=1024G watchdog_timeout=300 cpuid_mask_xsave_eax=0 lowmem_emergency_pool=1M crashkernel=64M@32M console=vga vga=mode-0x0311 dom0_mem=2048M,max:2048M dom0_max_vcpus=1-8 --- /boot/vmlinuz-2.6-xen blkbk.max_ring_page_order=2 root=LABEL=root-phjwmuox ro xencons=hvc console=hvc0 console=tty0 quiet vga=785 splash --- /boot/initrd-2.6-xen.img

http://oreilly.com/linux/excerpts/9780596100797/kernel-boot-command-line-parameter-reference.html

内存= n[KMG]

设置内核使用的特定内存量。与 memmap= 选项一起使用时,可以避免物理地址空间冲突。如果没有 memmap= 选项,此选项可能会导致 PCI 设备被放置在属于未使用 RAM 的地址上。n 指定要强制使用的内存量,以千字节 (K)、兆字节 (M) 或千兆字节 (G) 为单位。

Citrix 增加 Dom0 的脚本是否存在缺陷,即它不允许使用超过 1GB 的 dom0_mem?

答案1

在 XenServer 6.1 中,dom0 绝对可以拥有超过 1GB 的 RAM。而且您的语法看起来是正确的。但是,在更改 dom0 RAM 数量时,建议您使用正确的界面(这将有助于您避免输入错误)。请查看此文档:

http://support.citrix.com/article/CTX134951

不过,我不太确定您看到的低内存总量。自从您增加了 dom0 RAM 总量后,问题是否再次发生?如果是,您能否收集输出/proc/meminfo并编辑您的问题,包括该信息?

此外,如果您在某个特定主机中将多个带有 VDI 的 SR 插入到 VM,则该主机中可用的 LowMem 总量将减少,这可能会导致 OOM 启动。这是由于分配给 blkback 页池的内存所致,并且是可配置的。请查看此文档以了解更多信息:

http://support.citrix.com/article/CTX136861

最后但同样重要的一点是,确保您已应用所有修补程序。

干杯

费利佩

相关内容