我们正在生产中运行XenServer 6.1,并且最近遭到了OOM杀手的攻击,并最终取消了我们的一个刀片服务器。 我注意到,在OOM杀手实例的内核日志中,似乎从Dom0的angular度来看有很多内存:
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分配额外的内存,以帮助提高性能并为每个主机运行更多虚拟机: 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 :
mem = n [KMG]
设置内核使用的特定内存量。 与memmap =选项一起使用时,可避免物理地址空间冲突。 没有memmap =选项,该选项可能会导致PCI设备放置在属于未使用的RAM的地址处。 n指定要强制的内存量,以千字节(K),兆字节(M)或千兆字节(G)为单位进行度量。
是Citrix的脚本增加Dom0越野车,它不会让它使用1GB以上的任何dom0_mem?
在XenServer 6.1中,您绝对可以拥有超过1GB的dom0内存。 你的语法看起来是正确的。 当更改dom0 RAM的数量时,build议您使用正确的界面(这将有助于防止input错误)。 检查这个文件:
http://support.citrix.com/article/CTX134951
尽pipe如此,我并不确定你所看到的低内存总量。 问题是否因为增加了dom0 RAM的总量而再次发生? 如果是这样,你能收集/proc/meminfo的输出并编辑你的问题,包括这些信息吗?
另外,如果在一台特定的主机上有多个插入虚拟机的SR,则该主机上的可用LowMem总量将减less,并且可能导致OOM启动。这是由于分配给blkback页面池的内存和是可configuration的。 看看这个文档来了解更多关于它的信息:
http://support.citrix.com/article/CTX136861
最后但并非最不重要的一点,请确保您已应用所有修补程序。
干杯
费利佩