Sistem Monitörü'ndeki bellek kullanım raporu ile ücretsiz rapor arasındaki fark nedir?


14

Sistem Monitörü 2.28.0 kullanıyorum. Kaynaklar sekmesine baktığımda, bellek ve takas için hoş bir grafik görüyorum. Bellek yaklaşık% 60 2.3 GiB'dir. Komutu ücretsiz yazdığımda:

             total       used       free     shared    buffers     cached
Mem:       3994908    3962396      32512          0     100852    1477032
-/+ buffers/cache:    2384512    1610396
Swap:      8000328      28468    7971860

kedi / proc / meminfo | grep MemFree vermek

MemFree:           34536 kB

Durum birkaç dakika boyunca tasarruf olarak kaldı. Bir komut dosyası ile çok fazla işlem başlattım ve komut dosyası, boş belleğin düşmesini bekliyor. İşlem sekmesinde (veya üstte) gördüğüm şeye göre, Sistem Monitörü'ndeki sayı, serbest olarak bildirilen işlemin belleğinin toplamına çok kapalı görünüyor.

Teşekkürler

Yanıtlar:


15

Aradaki fark "tamponlar" ve "önbelleğe alınmış" hafızanın "kullanılmış" sayıya dahil edilip edilmediğidir.

Genel olarak, Linux sistem belleği çekirdek tarafından iki amaç için kullanılır: işlemler ve dosya / ağ önbelleği / arabellekleri. Çıktısına yakından bakarsanız free, zaten gösterilir:


             total       used       free     shared    buffers     cached
Mem:       3994908    3962396      32512          0     100852    1477032
-/+ buffers/cache:    2384512    1610396
Swap:      8000328      28468    7971860

"Tamponlar" ve "önbellek" ekleyip "kullanılmış" sütunundan -/+ buffers/cacheçıkarırsanız, yaklaşık 2,3G (2384512) değerini gösteren "kullanılmış" (ile başlayan satır) altındaki ikinci satırı alırsınız . Sistem Monitörünün bildirdiği kullanımdaki rapor edilen bellekle eşleşen kullanım (arabellekleri yok sayar / önbelleğe alır çünkü bunlar daha fazla işlem için yer açmak için gider).

Karşı grep /proc/meminfoaslında ilk hat "serbest" sütunu (- muhtemelen iki komut çıktıları arasında değişti 32512 34536 yakın yeterlidir) eşleşir.


Teşekkürler, sistemin neden önbellekte 1,5 Gig'e ihtiyaç duyduğunu merak ediyorum, ancak bu açıkça ortaya koyuyor.
Guillaume Coté

1
Bu "kullanılan" dan daha az "ihtiyaç" meselesidir. O zaman, en azından sabit sürücüden çok şey okumuştu ve tekrar kullanması gerektiğinde yedek bellekte tutmuştu.
Kees Cook

0

Sistem monitöründe elimi tuttuğumda, "Kaynaklar" sekmesinde bildirilen bellek kullanımı freesütundaki ile aynıydı /usr/bin/free.

Sorun şu ki, ücretsiz fiziksel bellek neredeyse 0, yakında veya daha sonra: Linux agresif bir şekilde önbellekliyor, böylece RAM satın almak için harcadığınız para verimli bir şekilde kullanılıyor. Bu da grafiğin sürekli olarak bellek kullanımının% 98'inden fazlasını göstereceği anlamına geliyordu, ki bu işe yaramazdı.

Bu yüzden ben / biz gibi -/+ buffers/cache:satır yapmaya karar verdi /usr/bin/free. Bu şekilde grafik anlamlıdır ve kullanıcının belleğin fiziksel durumu yerine ~ application / userland bellek kullanımını izlemesine izin verir.

Biliyorum, bu biraz yanıltıcı, çünkü çoğu (l) kullanıcı ücretsiz fiziksel belleğin para ve performans kaybı olduğunu anlamıyor. İş yerinde aynı sorunla karşılaştım: her pazartesi, sunucular yeniden başlatılacak ve sonraki 24 saat içinde her sunucu bir "bellek dolu" uyarısı tetikleyecekti. Bu yüzden sistem monitöründe olduğu gibi denetim yazılımında sabit bellek hesaplaması yaptım.

Geçerli Solaris aynı sorunu var: ZFS Önbellek (ARC), vmstataptal DB yöneticileri "ZFS kötü" şikayet ediyor gibi araçlar tarafından bildirilen boş hafıza dahil değildir :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.