我怎么知道为什么我的(Ubuntu的8.04)服务器颠簸,变得没有反应?

我有一台运行Ubuntu 8.04的服务器。 这是一个web服务器(mysql / php / apache2)和邮件服务器(dovecot / postfix / spam assassin)。

通常情况下,内存使用是名义上的,一切运行平稳。 每过一段时间,内存使用情况都会跳过屋顶,并开始颠簸,然后变得完全没有响应,需要重新启动。

问题是,我如何诊断问题? 它似乎没有发生在任何一致的时间表上,而且是不可预测的。 有什么我可以设置赶上罪魁祸首?

以下是问题发生时的日志部分:

 12月5日07:58:28邮件内核:[587023.374916] lowmem_reserve []:0 0 0 0
 Dec 5 07:58:28 mail kernel:[587023.374919] DMA:3 * 4kB 3 * 8kB 3 * 16kB 1 * 32kB 1 * 64kB 1 * 128kB 1 * 256kB 1 * 512kB 0 * 1024kB 0 * 2048kB 0 * 4096kB = 1076kB
 Dec 5 07:58:28邮件内核:[587023.374926] DMA32:88 * 4kB 30 * 8kB 10 * 16kB 0 * 32kB 4 * 64kB 0 * 128kB 0 * 256kB 0 * 512kB 1 * 1024kB 0 * 2048kB 0 * 4096kB = 2032kB
 12月5日07:58:28邮件内核:[587023.374934]交换caching:添加5959244,删除5959242,find4577237/5361570,比赛31 + 2723
 12月5日07:58:28邮件内核:[587023.374936]免费swap = 0kB
 12月5日07:58:28邮件内核:[587023.374937]总掉期= 524280kB
 12月5日07:58:28邮件内核:[587023.374939]免费交换:0kB
 12月5日07:58:28邮件内核:[587023.377091] 67584页的RAM
 12月5日07:58:28邮件内核:[587023.377096] 2652保留页面
 12月5日07:58:28邮件内核:[587023.377098] 5432页共享
 12月5日07:58:28邮件内核:[587023.377099] 2页交换caching
 12月5日07:58:28邮件内核:[587078.150437]皮卡被调用的oom-killer:gfp_mask = 0x1201d2,order = 0,oomkilladj = 0
 12月5日07:58:28邮件内核:[587078.150450] pid:4649,通讯:皮卡没有污染2.6.24-22-xen#1
 12月5日07:58:28邮件内核:[587078.150453] 
 12月5日07:58:28邮件内核:[587078.150453]通话跟踪:
 12月5日07:58:28邮件内核:[587078.150473] [] oom_kill_process + 0xf6 / 0x110
 12月5日07:58:28邮件内核:[587078.150478] [] out_of_memory + 0x19e / 0x1e0
 12月5日07:58:28邮件内核:[587078.150483] [] __alloc_pages + 0x389 / 0x3c0
 12月5日07:58:28邮件内核:[587078.150490] [] __do_page_cache_readahead + 0x104 / 0x260
 12月5日07:58:28邮件内核:[587078.150495] [] filemap_fault + 0x2de / 0x3e0
 12月5日07:58:28邮件内核:[587078.150500] [] __do_fault + 0x6a / 0x5d0
 12月5日07:58:28邮件内核:[587078.150504] [] handle_mm_fault + 0x1d1 / 0xd60
 12月5日07:58:28邮件内核:[587078.150508] [] do_sync_write + 0xd9 / 0x120
 12月5日07:58:28邮件内核:[587078.150515] [] do_page_fault + 0x1f3 / 0x11e0
 12月5日07:58:28邮件内核:[587078.150530] []:ext3:free_rb_tree_fname + 0x4c / 0xb0
 12月5日07:58:28邮件内核:[587078.150535] [] vfs_write + 0x14e / 0x190
 12月5日07:58:28邮件内核:[587078.150539] [] error_exit + 0x0 / 0x79

“邮件”是服务器的名称。

当你注意到它是颠簸看看输出

ps aux 

 top 

如果你想要一个“漂亮”版本的顶部,你可以安装“htop”,并使用它。

你的日志文件也应该给你一个线索。 作为root用户检出/ var / log中的日志。

我强烈build议你安装logwatch,让它通过电子邮件定期login报告,这样你也可以查看日志。

解决内存使用问题

看看这个页面

我有一些缓慢的MySQL查询使整个服务器无响应的问题。 这可能有助于启用log_slow_queries并可能查看缓冲区和caching的大小。

另外,如果你产生了太多的Apache 2进程,它也会占用大量的内存。

如果你运行clamav病毒扫描电子邮件和大量的邮件进来它可以吃了相当多的资源。