如何在linux中协调“top”和“free -m”的内存使用情况报告?

时间:2009-01-30 10:30:05

标签: linux memory process free-command

free -m 我可以看到机器上有377MB内存和1649MB空闲(其中1567是由ubuntu缓存的)。请参阅下面的实际输出:

caz@riskvm:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          2026       1975         51          0         30       1567
-/+ buffers/cache:        377       1649
Swap:         3153         87       3065

然而,当我查看 top 的输出时,我可以在RES列中看到使用1GB和273MB的进程。 RES表示驻留在顶部手册页中的非交换物理内存中。

top - 11:45:26 up 1 day, 38 min,  3 users,  load average: 0.27, 0.21, 0.23
Tasks: 125 total,   1 running, 123 sleeping,   0 stopped,   1 zombie
Cpu(s):  0.2%us,  6.6%sy,  0.0%ni, 92.8%id,  0.5%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   2075560k total,  2023796k used,    51764k free,    31264k buffers
Swap:  3229024k total,    89764k used,  3139260k free,  1605400k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 6689 root      20   0 1242m 1.0g 1.0g S   13 51.1 292:59.21 vmware-vmx
 6658 root      20   0  492m 273m 262m S    2 13.5  41:16.75 vmware-vmx
    1 root      20   0  2844  536  484 S    0  0.0   0:01.50 init
    2 root      15  -5     0    0    0 S    0  0.0   0:00.00 kthreadd
    3 root      RT  -5     0    0    0 S    0  0.0   0:00.02 migration/0

据我所知,其中一些进程共享(共享对象等)。但是如果其他进程共享1GB的内存,那么至少必须使用那么多吗?

free 如何报告使用377MB内存,当我查看顶部时,我看到使用1GB及更多RES内存的进程?

1 个答案:

答案 0 :(得分:6)

top中报告的驻留内存包括显卡中的mmaped帧缓冲区,nics和其他“非ram”内存。 free报告的内存严格来说是ram + swap。