`free -m` は Linux 上のプログラムが 322M の RAM を使用していることを表示しますが、`top` は 58M を使用していることを表示します。なぜでしょうか?

`free -m` は Linux 上のプログラムが 322M の RAM を使用していることを表示しますが、`top` は 58M を使用していることを表示します。なぜでしょうか?

私は burst.net に 512M の VPS ボックスを持っていますが、スワップはありません。OS は Centos 6.x x64 です。

起動時には 58M の RAM しか使用されませんでした。

$ free -m:
             total       used       free     shared    buffers     cached
Mem:           512         58        454          0          0          0
-/+ buffers/cache:         58        454
Swap:            0          0          0

ここで、Java プログラム (Python で起動) を開始しましたfree -m

$ free -m
             total       used       free     shared    buffers     cached
Mem:           512        380        131          0          0          0
-/+ buffers/cache:        380        131
Swap:            0          0          0

ああ、(380-58=322M)のRAMを使用しました。

しかし、私がtop

top - 20:37:01 up 67 days,  3:19,  2 users,  load average: 0.08, 0.04, 0.00
Tasks:  20 total,   2 running,  18 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    524800k total,   388300k used,   136500k free,        0k buffers
Swap:        0k total,        0k used,        0k free,        0k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  DATA COMMAND                             
20288 freewind  17   0  936m  48m  11m S  0.0  9.4   0:02.07 799m java                                
20287 freewind  17   0  179m  10m 3404 S  0.0  2.1   0:00.08 7260 python                              
20200 root      15   0 91732 3940 2948 S  0.0  0.8   0:00.03  932 sshd                                
20145 root      15   0 91640 3832 2948 S  0.0  0.7   0:00.02  840 sshd                                
 1474 root      18   0 80296 2312  696 S  0.0  0.4   4:06.86 1684 sendmail                            

java+python では48m+10m = 58MRAM のみが使用されているようです。なぜfree -m使用されていると表示されるのでしょうか322M? 不足している RAM はどこにありますか?

答え1

あなたの場合、「free -m」は、バッファとキャッシュを含む合計RAM使用量のみを示しているようです(おそらくVPSを使用しているため)。これらは、実行中のプログラムによって消費されない余分なRAM使用量を占めることが多いです。LinuxがRAMを食い尽くしたページ?

答え2

top各インスタンスまたはプロセスごとに詳細が表示されていますが、free表示されません。

使用すると、free何が実行されているかは正確にはわかりませんが、概要のみが表示されます。

関連情報