我有一台运行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病毒扫描电子邮件和大量的邮件进来它可以吃了相当多的资源。