Tampon / önbellek satırının serbest çıktıdaki anlamı


168

Sunucum neden gösteriyor

            total      used      free   shared buffers    cached
    Mem: 12286456  11715372    571084        0   81912   6545228
-/+ buffers/cache:  5088232   7198224
   Swap: 24571408     54528  24516880

Linux'ta hafızayı hesaplama konusunda hiçbir fikrim yok. 5088232'nin 7198224'ün ücretsiz olduğu yerlerde kullanıldığını söylüyor, yani 5GB RAM harcadığı anlamına mı geliyor?



Yanıtlar:


232

Değerlerin anlamı

İlk satır şu anlama gelir:

  • total: Toplam (fiziksel) RAM'iniz (çekirdeğin başlangıçta kendisine kalıcı olarak ayırdığı küçük bir miktar hariç); bu yüzden ca. 11.7 GiB, muhtemelen 12 GiB değil.
  • used: işletim sistemi tarafından kullanılan hafıza.
  • free: hafıza kullanımda değil.

total= used+free

  • shared/ buffers/ cached: Bu belirli amaçlar için hafıza kullanımını gösterir, bu değerler için değere dahil edilir used.

İkinci satır, ayarlanan ilk satır değerlerini verir. Bu orijinal değeri verir used eksi toplam buffers+cachedorijinal değeri free artı toplamı buffers+cachedbu nedenle, kendi başlık. Bu yeni değerler genellikle ilk satırınkinden daha anlamlıdır.

Son satır ( Swap:), takas alanı kullanımı (yani geçici olarak diske taşınan bellek içeriği) hakkında bilgi verir.

Arka fon

Sayıların ne anlama geldiğini anlamak için, Linux'taki sanal bellek (VM) alt sistemi hakkında biraz bilgi edinin. Sadece kısa bir sürüm: Linux (çoğu modern işletim sistemi gibi) her zaman önbellekleme için boş RAM kullanmayı deneyecek, bu yüzden Mem: freeneredeyse her zaman çok düşük olacaktır. Bu nedenle, çizgi -/+ buffers/cache:gösterilir, çünkü önbellekleri yoksayırken ne kadar boş alan olduğunu gösterir; bellek az olursa önbellekleri otomatik olarak serbest bırakır, bu yüzden gerçekten önemli değil.

Satırdaki freedeğerin azalması durumunda, Linux sistemi bellekte gerçekten -/+ buffers/cache:düşük.

Sayıların anlamı hakkında daha fazla bilgi için, örneğin sorulara bakınız:

İşlemlerdeki Değişiklikler 3.3.10

Çıkış Not freePROCPS 3.3.10 değiştirildi (2014 yılında yayımlanmıştır). Rapor edilen sütunlar artık "toplam", "kullanılmış", "ücretsiz", "paylaşılan", "buff / cache", "kullanılabilir" ve bazı değerlerin anlamlarını değiştirdiler. önbelleği.

Motivasyon için 565518 no'lu Debian Hata raporuna bakınız ve 14.04'ten 16.04'e kadar çıktıdaki değişiklikler ne freeanlama geliyor? Daha fazla bilgi için.


Linux'un önbelleğe almadığı şeyleri genişletebilir misiniz? Erişilmiş dosyalar mı yoksa ağ şeyler mi?
CMCDragonkai

@ CMCDragonkai: serverfault.com/questions/23433/… 'a verilen cevap, "önbellek" ve "tampon" kelimelerini neyin oluşturduğunu ayrıntılı olarak ele almaktadır.
sleske, 16 Ağustos'ta

5
"Total = used + free" ifadesinin doğru olduğunu sanmıyorum, makinemdeki şu çıktılara bakın:$ free -h total used free shared buff/cache available Mem: 3.4G 585M 152M 11M 2.6G 2.5G Swap: 4.0G 84M 3.9G
Sebastian

@Sebastian: Ah, ilginç. Serbestlerin yükselişi değişmiş görünüyor (3.3.10'da). Bunu söylemek için cevabımı değiştirdim. Bu değişiklikle ilgileniyorsanız, yeni bir soru sormayı düşünün :-).
sleske

3
total = used + free + buff/cache
tehlike89


2

Tamponlar / önbellek satırı, programlar tarafından ne kadar bellek kullanıldığını gösterir (bu sütunların ilki) ve programların kullanımı için ücretsizdir (ikinci sütun). Oldukça ezoterik bir sayı ve pratikte çokça bakacağınız bir şey değil.


Ve ilk satır (mem line) ne anlama geliyor
Muahmmad Zeeshan

8
Sistemde 11,5 GB kullanılan ve 0,5 GB kadar kullanılmamış olan 12 GB RAM yüklü olduğundan. Tamponlar için yaklaşık 82MB kullanılan bellek kullanılır (ağ bağlantıları, vb.), Yaklaşık 6.5GB ise verilerin kopyalarını diskte depolamak için kullanılır, böylece tekrar gerekirse, verilerin yeniden okunması gerekmez.
womble

3
@Muhammad: "82MB ücretsizdir." - hayır, 57MiB ücretsizdir (ancak bu gerçekten önemli değil, cevabımı görün). “Şimdi her şey sistemin sınırlarına ulaştığı anlamına geliyor” - Hayır, hiç değil. Sistem, uygulamalara kolayca vereceği önbellekleme için kullanılan 6.9GiB'ye sahiptir, bu nedenle çok fazla alan vardır. Ayrıca, takas kullanımı çok düşüktür (ony yaklaşık 50MiB). Bellek sıkışmaya başlarsa, takas kullanımı artacaktır. Şu anda sahip olduğun RAM'in yarısını zar zor kullanıyorsun.
sleske

4
Bir noktada yeni bir soru sormayı düşündün mü?
womble

3
Kabul etmiyorum, tamponlar / önbellek satırı sistemin gerçek boş hafızasıdır ve bu nedenle sistemin programlar için yeterli alanı olup olmadığını bilmek istiyorsanız daha uygundur.
15'te eckes
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.