【发布时间】:2014-01-13 05:40:55
【问题描述】:
我在我的一台服务器上观察到以下统计数据。
- 在 top 命令中,只有一个进程使用了 15% 的 RAM,没有其他进程
- vmstat 输出的换入换出列下全是 0
但我仍然看到 Swap 和 RAM 都被“free -m”输出完全占用
顶部输出
Mem: 16413804k total, 16390264k used, 23540k free, 59604k buffers
Swap: 2040244k total, 2040244k used, 0k free, 584688k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10984 mysql 15 0 3100m 2.4g 5472 S 0 15.5 1129:44 mysqld
12773 root 16 0 18440 7916 1064 S 0 0.0 65:46.67 IPremoted
3108 ntp 16 0 18984 5720 4652 S 0 0.0 54:35.78 ntpd
19694 root 16 0 48996 5708 3656 S 0 0.0 0:00.03 sshd
11084 hpsmh 17 0 371m 3892 2532 S 0 0.0 0:00.00 hpsmhd
free -m 输出
total used free shared buffers cached
Mem:16029 15983 46 0 52 546
-/+ buffers/cache:
15384 644
Swap:1992 1992 0
vmstat 输出
swap usage
si so
0 0
0 0
0 0
0 0
0 0
0 0
0 0
有人能解释一下这个案例吗?
提前感谢。
【问题讨论】:
-
对于具有高 i/o 活动的系统,这些统计数据看起来很正常。你到底想解释什么?我认为这是ServerFault 相关问题。
-
Alex,Mysql 正在使用 15% 的 RAM,并且没有其他进程占用大量 RAM。那为什么我看到 RAM 和 SWAP 都被填满了?
-
@Alex,我使用“Top”和“Shit M”来按内存使用量的降序查看进程。
-
看这个问题What is active memory and inactive memory。这有助于理解为什么交换可能已满,但当前未使用。
-
亚历克斯,感谢您的链接。但我看到活动内存下只有 2.7 GB。以及一些 440 MB 的非活动内存。剩下的呢??在这种情况下(RAM 为 15 GB)。我在 top 或 vmstat -a 中看不到它的任何痕迹。
标签: linux memory-management swap ram