作为系统新手,我继承了一台 Debian 服务器,我注意到虚拟内存非常高(大约 95%!)。该服务器运行缓慢已有大约 6 个月,我想知道你们是否有任何建议可以尝试,特别是关于释放内存。该服务器托管各种网站以及 Postit 电子邮件服务器。
以下是详细信息:
操作系统 Debian Linux 5.0 Webmin 版本 1.580 系统时间 2012 年 4 月 12 日星期四 11:12:21 x86_64 上的内核和 CPU Linux 2.6.18-6-amd64 处理器信息 Intel(R) Core(TM)2 Duo CPU E7400 @ 2.80GHz,2 核 系统正常运行时间 229 天 12 小时 50 分钟 正在运行的进程 138 CPU 平均负载 0.10 (1 分钟) 0.28 (5 分钟) 0.36 (15 分钟) CPU 使用率 14% 用户,1% 内核,0% IO,85% 空闲 实际内存总计 2.94 GB,已使用 1.69 GB 虚拟内存总计 3.93 GB,已使用 3.84 GB 本地磁盘空间总计 142.84 GB,已使用 116.13 GB
自由m输出:
免费-m 已使用的、可用的、缓存的共享缓冲区总数 内存:3010 2517 492 0 107 996 -/+ 缓冲区/缓存:1413 1596 交换:4024 3930 93
顶部输出:
顶部 - 11:59:57 启动 229 天,13:38,1 个用户,平均负载:0.26、0.24、0.26 任务:共 136 个,其中 2 个正在运行,134 个正在休眠,0 个已停止,0 个僵尸 CPU:3.8%us,0.5%sy,0.0%ni,95.0%id,0.7%wa,0.0%hi,0.0%si,0.0%st 内存:总计 3082544k,已用 2773160k,可用 309384k,缓冲区 111496k 交换:总计 4120632k,已使用 4024712k,可用 95920k,缓存 1036136k PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令 28796 www-数据 16 0 304m 68m 6188 S 8 2.3 0:03.13 Apache2 1 根 15 0 10304 592 564 S 0 0.0 0:00.76 初始化 2 根 RT 0 0 0 0 S 0 0.0 0:04.06 迁移/0 3 根 34 19 0 0 0 S 0 0.0 0:05.67 ksoftirqd/0 4 根 RT 0 0 0 0 S 0 0.0 0:00.00 看门狗/0 5 根 RT 0 0 0 0 S 0 0.0 0:00.06 迁移/1 6 根 34 19 0 0 0 S 0 0.0 0:01.26 ksoftirqd/1 7 根 RT 0 0 0 0 S 0 0.0 0:00.00 看门狗/1 8 根 10 -5 0 0 0 S 0 0.0 0:00.12 事件/0 9 根 10 -5 0 0 0 S 0 0.0 0:00.00 事件/1 10 根 10 -5 0 0 0 S 0 0.0 0:00.00 khelper 11 根 10 -5 0 0 0 S 0 0.0 0:00.02 kthread 16 根 10 -5 0 0 0 S 0 0.0 0:15.51 kblockd/0 17 根 10 -5 0 0 0 S 0 0.0 0:01.32 kblockd/1 18 根 15 -5 0 0 0 S 0 0.0 0:00.00 kacpid 127 根 10 -5 0 0 0 S 0 0.0 0:00.00 khubd 129 根 10 -5 0 0 0 S 0 0.0 0:00.00 kseriod 180根10 -5 0 0 0 S 0 0.0 70:09.05 kswapd0 181 根 17 -5 0 0 0 S 0 0.0 0:00.00 aio/0 182 根 17 -5 0 0 0 S 0 0.0 0:00.00 aio/1 780根16 -5 0 0 0 S 0 0.0 0:00.00 ata/0 782根16 -5 0 0 0 S 0 0.0 0:00.00 ata/1 783 根 16 -5 0 0 0 S 0 0.0 0:00.00 ata_aux 802 根 10 -5 0 0 0 S 0 0.0 0:00.00 scsi_eh_0 803 根 10 -5 0 0 0 S 0 0.0 0:00.00 scsi_eh_1 804 根 10 -5 0 0 0 S 0 0.0 0:00.00 scsi_eh_2 805 根 10 -5 0 0 0 S 0 0.0 0:00.00 scsi_eh_3 1013 根 10 -5 0 0 0 S 0 0.0 49:27.78 kjournald 1181 根 15 -4 16912 452 448 S 0 0.0 0:00.05 udevd 1544 根 14 -5 0 0 0 S 0 0.0 0:00.00 kpsmoused 1706 根 13 -5 0 0 0 S 0 0.0 0:00.00 kmirrord 1995 根 18 0 193m 3324 1688 S 0 0.1 8:52.77 rsyslogd 2031 根 15 0 48856 732 608 S 0 0.0 0:01.86 sshd 2071 根 25 0 17316 1072 1068 S 0 0.0 0:00.00 mysqld_safe 2108 mysql 15 0 320米 72米 4368 S 0 2.4 1923:25 mysqld 2109 根 18 0 3776 500 496 S 0 0.0 0:00.00 记录器 2180 邮政 15 0 99504 3016 2880 S 0 0.1 1:24.15 邮政 2184 postgres 15 0 99504 3596 3420 S 0 0.1 0:02.08 postgres 2185 postgres 15 0 99504 696 628 S 0 0.0 0:00.65 postgres 2186 postgres 15 0 99640 892 648 S 0 0.0 0:01.18 postgres
答案1
我大胆猜测,由于您正在运行数据库,您的系统正在使用大量交换空间(我认为 webmin 称之为虚拟内存)。您在同一个机器上运行 MySQL 和 Postgres(您是说这种情况吗?我建议您只使用其中一个),并且根据您的数据/配置,它们可能都要求大量 RAM 用于它们自己的内部缓存。是否有人一直在摆弄数据库参数而不考虑他们会做什么?
如果我没记错的话,如果你使用数据库的应用程序不断在已从 RAM 中交换出来的数据库表上执行查找,那么它们可能会显得很慢。前几天我发现了这个演示文稿:
http://thebuild.com/presentations/not-my-job.pdf
它看起来相当不错(那家伙的博客通常包含大量有关 Postgres 的信息)。