2013-07-12 3 views
52

のRedHat Linuxの6.2でないと、それはほぼすべての8GBLinuxの無料のショー高いメモリ使用量が、トップは、私は<code>free -m</code>を実行しているではない

   total  used  free  shared buffers  cached 
Mem:   7989  7734  254   0   28  7128 
-/+ buffers/cache:  578  7411 
Swap:   4150   0  4150 

を使用しかしtop -Mで、同時に私はすべてを使用して、任意のプロセスを見ることができません示していこのメモリ:

top - 16:03:34 up 4:10, 2 users, load average: 0.08, 0.04, 0.01 
Tasks: 169 total, 1 running, 163 sleeping, 5 stopped, 0 zombie 
Cpu(s): 0.7%us, 0.3%sy, 0.0%ni, 98.6%id, 0.4%wa, 0.0%hi, 0.0%si, 0.0%st 
Mem: 7989.539M total, 7721.570M used, 267.969M free, 28.633M buffers 
Swap: 4150.992M total, 0.000k used, 4150.992M free, 7115.312M cached 

    PID USER  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
1863 sroot  20 0 398m 24m 9.8m S 0.3 0.3 3:12.87 App1 
    1 sroot  20 0 2864 1392 1180 S 0.0 0.0 0:00.91 init 
    2 sroot  20 0  0 0 0 S 0.0 0.0 0:00.00 kthreadd 
    3 sroot  RT 0  0 0 0 S 0.0 0.0 0:00.07 migration/0 
    4 sroot  20 0  0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0 
    5 sroot  RT 0  0 0 0 S 0.0 0.0 0:00.00 migration/0 
    6 sroot  RT 0  0 0 0 S 0.0 0.0 0:00.00 watchdog/0 
    7 sroot  RT 0  0 0 0 S 0.0 0.0 0:00.08 migration/1 
    8 sroot  RT 0  0 0 0 S 0.0 0.0 0:00.00 migration/1 

は、私はまた、このps mem scriptを試してみましたが、それはonlt使用されている400メガバイトのメモリについて示しています。

答えて

99

"Mem"行を見ないで、その下の行を見てください。

Linuxカーネルは、I/Oキャッシュ(および他のクリティカルではないバッファー)を提供するためにできるだけ多くのメモリを消費しますが、キャッシュはこのような用途のほとんどになります。このメモリは、プロセスが要求したときに解放されます。 " -/+ buffers/cache"行には、I/Oキャッシュが処理された後の調整された値、つまりプロセスで使用されるメモリ量とプロセスで使用可能な量が表示されます(この場合は578MBが使用され、 7411 MB無料)。

"Mem"と " -/+ buffers/cache"行の使用メモリの違いは、キャッシュのためにカーネルがどれだけ使用しているかを示しています。I/Oの7734MB〜578MB = 7156MBキャッシュ。プロセスがこのメモリを必要とする場合、カーネルは単にI/Oキャッシュのサイズを縮小します。また

+1

Yip、ありがとう。 https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Tuning_and_Optimizing_Red_Hat_Enterprise_Linux_for_Oracle_9i_and_10g_Databases/chap-Oracle_9i_and_10g_Tuning_Guide-Memory_Usage_and_Page_Cache.html – DarVar

+0

ありがとう:も良い説明している、あまりにもこれにつまずきました。本当に助けます。 –

12

、我々は(キャッシュされた[7128] +バッファ[28] +無料[254])、我々が得る約二行目のフリー[7411]の値 7128 + 28 + 254 = 7410 が追加した場合、最初の行が total used free shared buffers cached Mem: 7989 7734 254 0 28 7128 -/+ buffers/cache: 578 7411

を示して

関連する問題