2013-07-12 30 views
52

yapar ve neredeyse tüm 8GB Linux ücretsiz şovları yüksek bellek kullanımı ancak üst RedHat Linux ben <code>free -m</code> koşuyorum 6.2 üzerinde değil

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

kullanılan gösterir Ama top -M aynı anda tüm kullanarak herhangi süreçleri göremiyorum Bu hafıza:

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 

Ben de bu ps mem script denedik ama onlt 400MB bellek kullanıldığı konusunda gösterir.

cevap

99

"Mem" çizgisine bakma, aşağıdakine bakın.

Linux çekirdeği, G/Ç önbelleğini (ve diğer kritik olmayan arabellekleri sağlamak için olabildiğince fazla bellek tüketir, ancak önbellek bu kullanımın çoğunu kullanır). Bu bellek, istediği zaman süreçlere bırakılır. "-/+ önbellek/önbellek" satırı, I/O önbelleği hesaplandıktan sonra ayarlanan değerleri gösterir, yani işlem tarafından kullanılan bellek miktarı ve işlemlerin kullanılabilir miktarı (bu durumda, kullanılan 578MB ve 7411MB ücretsiz).

Kullanılan bellek "Mem" ve "-/+ arabellek/önbellek" satırı arasındaki fark, önbelleğe alma amacıyla çekirdeğin ne kadar kullanıldığını gösterir: 7734MB - 578MB = 7156MB G/Ç'de önbelleği. İşlemler bu belleğe ihtiyaç duyuyorsa, çekirdek yalnızca G/Ç önbelleğinin boyutunu küçültür. Ayrıca

+1

Yip, teşekkürler. 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

Teşekkür: da iyi bir açıklama olduğu bu işe tökezledi. Gerçekten yardımcı olur. –

12

biz (önbelleğe [7128] + tamponlar [28] + serbest [254]) elde ederiz, yaklaşık olarak ikinci hat serbest [7411] değer 7128 + 28 + 254 = 7410 eklemek, ilk satır total used free shared buffers cached Mem: 7989 7734 254 0 28 7128 -/+ buffers/cache: 578 7411

gösterildiği gibi