Üst komuttaki “önbellek” nedir?


45

Koşarken topalıyorum:

top - 09:10:52 up 18:37,  1 user,  load average: 1.56, 1.33, 1.15
Tasks:  39 total,   1 running,  38 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.6%sy,  1.0%ni, 92.5%id,  5.8%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4194304k total,  3045460k used,  1148844k free,        0k buffers
Swap:        0k total,        0k used,        0k free,  2256128k cached

Bkz. Bölüm: 2256128k önbelleğe alınmış mı? Bu tam olarak ne anlama geliyor?

İki sağlayıcıdan iki VPS'yi karşılaştırıyorum, bu her zaman orada büyük miktarda var (kullanılan belleğin% 70'i) ve diğer VPS sağlayıcı her zaman 0 gösteriyor.

Yanıtlar:


15

Önbelleklenmeden önceki bu sayı, dosya sistemleriniz için önbellek arabellekleri tarafından kullanılan fiziksel bellek miktarıdır.

O var aslında üzerinde olmasına rağmen SWAP ile ilgili "Swap:" satırını.

Cevabımı küçük bir denemeyle doğrulamak için aşağıdakileri deneyin:

Üst çalıştırın ve 'önbelleğe alınmış' değerini not alın. Şimdi koş

dd if=/dev/zero of=~/trick bs=1M count=128

Tekrar koşarsanız, 'önbelleğe alınmış' öğenin 128M büyüdüğünü fark edeceksiniz.

Şimdi dosyayı kaldır

rm ~/trick

Tekrar üste koşarsanız , 'önbelleğe alınmış' durumunun 128M azaldığını göreceksiniz

Yani Mem için:

total = used + free ve

used = <all apps> + buffers + cached

(burada tamponlar temel olarak önbellek için meta veridir). UI ile ilgili biraz kafa karıştırıcı.


ve bunu yine de etkileyebilirim, örneğin sınırlandırın ya da tamamen devre dışı bırakın mı?
KKK

2
Neden bunu yapmak istiyorsun?! ne yapacaksın? dosya sisteminin fiziksel bellekte nasıl önbelleğe alındığı hakkında.

Çünkü dosya sisteminin çoğu bir DB'dir, DB'nin kendi önbelleği vardır, bu yüzden bu bölümü bir şekilde sınırlamanın iyi olacağını varsayıyorum.
KKK

Biraz arama yaparak yapabilirsin ama sana tavsiyem yok. Bu,

116

Linux çekirdeği, çalışan bir program gerektirmedikçe disk önbelleğe almak için kullanılabilir belleği kullanır.

Bu iyi kabul edilir; Diyelim ki 4 GB RAM’iniz var ve programlarınız sadece 1 GB’ı kullanıyor. Diğer 3 GB boşa gidecek. Hafızanızın sadece% 25'ini kullandığınızı bilmenin “iyi hissetme” izlenimine rağmen, karşıt taraf diğer% 75'in kullanılmadığı yönünde. Bu yüzden çekirdek, dosyaları önbelleğe almak için performansı önemli ölçüde artıran kullanır. Otomatik; Eski işletim sistemlerinden farklı olarak, ne kadar disk önbelleğine ayrılacağınıza karar vermeniz veya el ile yapılandırmanız gerekmez.

“Linux disk önbelleği çok göze çarpmıyor. Disk erişim hızlarını büyük ölçüde artırmak için ve uygulamalardan herhangi bir bellek almadan büyük miktarda yedek bellek kullanıyor. Linux'ta tam olarak kullanılan bir ram deposu etkin donanım kullanımı, bir uyarı işareti değil.”

Bu o kadar yaygın bir sorudur ki, kendisine adanmış bir web sitesi var:

http://www.linuxatemyram.com

Web sitesinde disk önbelleğini boşaltmanın bir yolu da var, böylece bazı uygulamaları çalıştırabilir ve önbellek etkinken ne kadar hızlı olduklarını görebilirsiniz :)


4
Cevabı seviyorum, ancak itibar yetersizliği nedeniyle (henüz) yükseltme yapamıyorum. Üzgünüm.
KKK

4
Endişelenme, sadece yardım ettiğim için mutluyum. Bilgi yararlı olur umarım!
roadmr

BU kabul edilen cevap olmalıdır. Oh iyi . . . :(
ankush981

kesinlikle kabul edilen cevap olmalı. linuxatemyram harika bir bilgi!
rafaelbattesti
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.