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メモリを使用しているプロセスが表示されますか?