现象:内存高占用(cache)的情况下,机器宕机。
内核错误:
时间 机器Host kernel: : [56120114.072869] 进程名: page allocation failure. order:1, mode:0x20 时间 机器Host kernel: : [56120114.150230] Pid: xxx, comm: sap_server Not tainted 2.6.32-详细版本号 #1 时间 机器Host kernel: : [56120114.247173] Call Trace: 时间 机器Host kernel: : [56120114.279151] <IRQ> [<ffffffff8111b2e2>] ? __alloc_pages_nodemask+0x612/0x910 时间 机器Host kernel: : [56120114.366841] [<ffffffff811532e0>] ? kmem_getpages+0x60/0x150 时间 机器Host kernel: : [56120114.436971] [<ffffffff81153a80>] ? fallback_alloc+0x1f0/0x200 时间 机器Host kernel: : [56120114.509167] [<ffffffff81153b2a>] ? ____cache_alloc_node+0x9a/0x120 时间 机器Host kernel: : [56120114.586519] [<ffffffff81155bc3>] ? kmem_cache_alloc+0x143/0x1a0 时间 机器Host kernel: : [56120114.660776] [<ffffffff813f0609>] ? sk_prot_alloc+0x119/0x1a0 时间 机器Host kernel: : [56120114.731938] [<ffffffff813f1a73>] ? sk_clone+0x23/0x2f0 时间 机器Host kernel: : [56120114.796918] [<ffffffff8143d696>] ? inet_csk_clone+0x16/0xc0 时间 机器Host kernel: : [56120114.867051] [<ffffffff81454e53>] ? tcp_create_openreq_child+0x23/0x430 时间 机器Host kernel: : [56120114.948525] [<ffffffff8145395a>] ? tcp_v4_syn_recv_sock+0x6a/0x290 时间 机器Host kernel: : [56120115.025875] [<ffffffff814557d0>] ? tcp_check_req+0x2d0/0x450 时间 机器Host kernel: : [56120115.097039] [<ffffffff81452f3e>] ? tcp_v4_do_rcv+0x31e/0x400 时间 机器Host kernel: : [56120115.168203] [<ffffffff8145466d>] ? tcp_v4_rcv+0x64d/0x9a0 时间 机器Host kernel: : [56120115.236275] [<ffffffff81432442>] ? ip_local_deliver_finish+0x122/0x2b0 时间 机器Host kernel: : [56120115.317750] [<ffffffff81432610>] ? ip_local_deliver+0x40/0xa0 时间 机器Host kernel: : [56120115.390002] [<ffffffff814327f2>] ? ip_rcv_finish+0x182/0x420 时间 机器Host kernel: : [56120115.461219] [<ffffffff81432cff>] ? ip_rcv+0x26f/0x380 时间 机器Host kernel: : [56120115.525215] [<ffffffff813ffd82>] ? __netif_receive_skb+0x382/0x680 时间 机器Host kernel: : [56120115.602621] [<ffffffff8140121e>] ? netif_receive_skb+0x4e/0x60 时间 机器Host kernel: : [56120115.675904] [<ffffffff81401328>] ? napi_skb_finish+0x48/0x60 时间 机器Host kernel: : [56120115.747128] [<ffffffff81401bd9>] ? napi_gro_receive+0x39/0x50 时间 机器Host kernel: : [56120115.819392] [<ffffffffa01f9fcf>] ? igb_receive_skb+0x3f/0x50 [igb] 时间 机器Host kernel: : [56120115.896796] [<ffffffffa01fe4bc>] ? igb_poll+0xd2c/0x1180 [igb] 时间 机器Host kernel: : [56120115.970078] [<ffffffff813f3b0e>] ? skb_release_all+0x1e/0x30 时间 机器Host kernel: : [56120116.041302] [<ffffffff8104ef80>] ? select_idle_sibling+0xf0/0x120 时间 机器Host kernel: : [56120116.117678] [<ffffffff8101ace5>] ? intel_pmu_enable_all+0xa5/0x110 时间 机器Host kernel: : [56120116.195081] [<ffffffff813fbfc3>] ? __napi_complete+0x23/0x40 时间 机器Host kernel: : [56120116.266308] [<ffffffff81401a84>] ? net_rx_action+0x1b4/0x2d0 时间 机器Host kernel: : [56120116.337532] [<ffffffff8106dce0>] ? __do_softirq+0xc0/0x1e0 时间 机器Host kernel: : [56120116.406707] [<ffffffff8100c10c>] ? call_softirq+0x1c/0x30 时间 机器Host kernel: : [56120116.474832] [<ffffffff8100dcd5>] ? do_softirq+0x65/0xa0 时间 机器Host kernel: : [56120116.540891] [<ffffffff8106da2c>] ? irq_exit+0x7c/0x90 时间 机器Host kernel: : [56120116.604893] [<ffffffff814c4478>] ? do_IRQ+0x78/0xf0 时间 机器Host kernel: : [56120116.666828] [<ffffffff8100b913>] ? ret_from_intr+0x0/0x11
原因:
为内核预留的内存空间过少,导致分配页时不够失败。
解决方案:
vm.min_free_kbytes = 512000 vm.zone_reclaim_mode = 1
前者影响了保留阈值计算,后者影响回收策略。