在Centos 6上内存不足

在过去的几天里,我在Centos 6服务器上遇到了内存不足的问题。

Aug 1 03:40:42 myserver xinetd[2304]: START: smtp pid=11222 from=87.109.36.82 Aug 1 03:40:46 myserver xinetd[2304]: EXIT: smtp status=1 pid=11222 duration=4(sec) Aug 1 03:41:08 myserver xinetd[2304]: START: smtp pid=11224 from=189.174.169.28 Aug 1 03:41:19 myserver xinetd[2304]: EXIT: smtp status=0 pid=11224 duration=11(sec) Aug 1 03:44:40 myserver xinetd[2304]: START: smtp pid=11240 from=109.230.244.236 Aug 1 03:44:40 myserver xinetd[2304]: EXIT: smtp status=0 pid=11240 duration=0(sec) Aug 1 03:44:41 myserver xinetd[2304]: START: smtp pid=11241 from=109.230.244.236 Aug 1 03:44:41 myserver xinetd[2304]: EXIT: smtp status=0 pid=11241 duration=0(sec) Aug 1 03:44:41 myserver xinetd[2304]: START: smtp pid=11242 from=109.230.244.236 Aug 1 03:44:41 myserver xinetd[2304]: EXIT: smtp status=0 pid=11242 duration=0(sec) Aug 1 03:44:51 myserver xinetd[2304]: START: smtp pid=11243 from=113.22.231.187 Aug 1 03:44:56 myserver xinetd[2304]: EXIT: smtp status=1 pid=11243 duration=5(sec) Aug 1 03:51:36 myserver kernel: postmaster invoked oom-killer: gfp_mask=0x201d2, order=0, oomkilladj=0 Aug 1 03:51:36 myserver kernel: Aug 1 03:51:36 myserver kernel: Call Trace: Aug 1 03:51:36 myserver kernel: [<ffffffff800c10bb>] out_of_memory+0x8e/0x2f5 Aug 1 03:51:36 myserver kernel: [<ffffffff8000f275>] __alloc_pages+0x245/0x2ce Aug 1 03:51:36 myserver kernel: [<ffffffff80012970>] __do_page_cache_readahead+0x95/0x1d9 Aug 1 03:51:36 myserver kernel: [<ffffffff800638fb>] __wait_on_bit_lock+0x5b/0x66 Aug 1 03:51:36 myserver kernel: [<ffffffff8003f7d9>] __lock_page+0x5e/0x64 Aug 1 03:51:36 myserver kernel: [<ffffffff8001330f>] filemap_nopage+0x148/0x322 Aug 1 03:51:36 myserver kernel: [<ffffffff80008848>] __handle_mm_fault+0x1f8/0xe23 Aug 1 03:51:36 myserver kernel: [<ffffffff8006686f>] do_page_fault+0x4cb/0x830 Aug 1 03:51:36 myserver kernel: [<ffffffff8000e123>] free_pages_and_swap_cache+0x73/0x8f Aug 1 03:51:36 myserver kernel: [<ffffffff8005dde9>] error_exit+0x0/0x84 Aug 1 03:51:36 myserver kernel: Aug 1 03:51:36 myserver kernel: Mem-info: Aug 1 03:51:36 myserver kernel: Node 0 DMA per-cpu: Aug 1 03:51:36 myserver kernel: cpu 0 hot: high 0, batch 1 used:0 Aug 1 03:51:36 myserver kernel: cpu 0 cold: high 0, batch 1 used:0 Aug 1 03:51:36 myserver kernel: cpu 1 hot: high 0, batch 1 used:0 

另一个例子:

 Aug 1 03:55:17 myserver xinetd[2304]: EXIT: smtp status=0 pid=11289 duration=36(sec) Aug 1 03:55:21 myserver xinetd[2304]: START: smtp pid=11293 from=109.230.244.236 Aug 1 03:59:28 myserver kernel: qmail-remote invoked oom-killer: gfp_mask=0x201d2, order=0, oomkilladj=0 Aug 1 03:59:28 myserver kernel: Aug 1 03:59:28 myserver kernel: Call Trace: Aug 1 03:59:28 myserver kernel: [<ffffffff800c10bb>] out_of_memory+0x8e/0x2f5 Aug 1 03:59:28 myserver kernel: [<ffffffff8000f275>] __alloc_pages+0x245/0x2ce 

常规的服务器内存使用率约为30-40%。 该服务器已经非常稳定,多年来一直“无故障”…什么会导致内存秒杀? 它与xinetd有什么关系?

在过去几天我更新了clamav,安装了Comodo mod_security riules和maldet。 我也安装了clamd作为一个新的应用程序。

有什么build议么? 我怎样才能缩小这个问题?

谢谢

正如上面提到的答复。检查更新包是第一个基于日志跟踪的debugging步骤,我们可以看到内核正在做它的工作,即当所有的系统内存被占用包括(RAM +交换)和系统将不会恢复正常操作直到内存被释放。

其他选项是configurationkdump与vm.panic_on_oom = 1(/etc/sysctl.conf),这将生成vmcore.You可以在这里find更多的信息http://people.redhat.com/anderson/crash_whitepaper /