Debian 虚拟内存达到限制

Debian 虚拟内存达到限制

作为系统新手,我继承了一台 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 的信息)。

相关内容