5

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 内存?

4

1 回答 1

6

报告的常驻内存top包括图形卡中的映射帧缓冲区、网卡和其他“非 RAM”内存。所报告的内存free严格来说是 ram + swap。

于 2009-01-30T10:43:33.090 回答