Linux'ta bellek tamponu ve önbellek arasındaki fark

Dikkatli arkadaşlar, Linux altında dosyalara sık sık eriştiğinizde, fiziksel belleğin hızlı bir şekilde tükendiğini fark edecekler.Program sona erdiğinde, belleğin normal bir şekilde serbest bırakılmayacağını, ancak her zaman bir önbellek olarak kullanılacağını fark edeceklerdir. Pek çok insan soruyor ama iyi bir çözüm görmediler, bu yüzden bu problemden bahsedeyim.

Önce ücretsiz komuttan bahsedeyim

onların arasında:

toplam toplam hafıza

kullanılan hafıza miktarı

boş boş hafıza

paylaşılan Birden çok işlem tarafından paylaşılan toplam bellek miktarı

arabellekler Arabellek Önbelleği ve önbelleğe alınmış Sayfa Önbelleği Disk önbellek boyutu

-Tampon / önbellek sayısı: kullanılan-arabellek-önbelleğe alınan

+ tamponlar / önbellek: ücretsiz + tamponlar + önbelleğe alınmış

Kullanılabilir bellek = boş bellek + tamponlar + önbelleğe alınmış

Bu temelle, artık 163MB kullandığımı, bedava 86, arabellek ve 10, 94

Öyleyse dosyaları kopyalarsam belleğe ne olduğuna bir bakalım.

Komutumun yerine getirilmesinden sonra kullanılan 244MB, ücretsiz 4MB, tamponlar 8MB, önbelleğe alınmış 174MB ve tanrım önbelleğe alındı, endişelenmeyin, bu dosya okuma verimliliğini artırmak içindir.

Disk erişim verimliliğini artırmak için Linux dikkatli bir tasarım yaptı.Dentry'i önbelleğe almanın yanı sıra (VFS için dosya yolu adlarının inode'a dönüştürülmesini hızlandırmak için kullanılır), ayrıca iki ana Önbellek yöntemi kullanır: Buffer Cache ve Page Cache. İlki, disk bloklarının okunması ve yazılması için, ikincisi ise dosya düğümlerinin okunması ve yazılması içindir. Bu Önbellekler, G / Ç sistem çağrılarının (okuma, yazma, girintiler gibi) süresini etkili bir şekilde kısaltır. "

Bu yüzden bazıları, bir süre sonra Linux'un kullanılan belleği otomatik olarak serbest bırakacağını, serbest bırakılıp bırakılmadığını görmek için tekrar özgürce deneyelim dedi. > ?

MS'de bir değişiklik yok, bu yüzden bu belleği manuel olarak serbest bırakabilir miyim ??? Cevap evet!

/ proc sanal bir dosya sistemidir, okuma ve yazma işlemlerini çekirdek varlığıyla bir iletişim aracı olarak kullanabiliriz.Yani, / proc içindeki dosyaları mevcut çekirdek davranışında değişiklik yapmak için değiştirebiliriz Ayarlama. Sonra / proc / sys / vm / drop_caches'i ayarlayarak belleği serbest bırakabiliriz. İşlem şu şekildedir:

# cat / proc / sys / vm / drop_caches

İlk olarak, / proc / sys / vm / drop_caches değeri, varsayılan değer 0'dır.

# senkronizasyon

Eşitleme komutunu manuel olarak yürütün (Açıklama: Eşitleme komutu, eşitleme alt yordamını çalıştırır. Sistemin durdurulması gerekiyorsa, dosya sisteminin bütünlüğünü sağlamak için eşitleme komutunu çalıştırın. Eşitleme komutu, değiştirilenler de dahil olmak üzere tüm yazılmamış sistem arabelleklerini diske yazar I-düğüm, gecikmeli blok G / Ç ve okuma-yazma eşleme dosyası)

# echo 3 > / proc / sys / vm / drop_caches

# cat / proc / sys / vm / drop_caches

/ Proc / sys / vm / drop_caches değerini 3 olarak ayarlayın

Ücretsiz komutu tekrar çalıştırın ve kullanılan akımın 66MB olduğunu, boşluğun 182MB olduğunu, tamponların 0MB olduğunu ve önbelleğe alınmasının 11MB olduğunu bulun.Daha sonra tampon ve önbellek etkin bir şekilde serbest bırakılır.

/ Proc / sys / vm / drop_caches kullanımı aşağıda açıklanmıştır.

Metal doku bölme çizgisi

Arabellek ve önbellek arasındaki fark

Arabellek, diske henüz "yazılmamış" bir şeydir Önbellek, diskten "okunan" ve daha sonra kullanılmak üzere saklanan bir şeydir.

Paylaşılan bellek (Paylaşılan bellek) için, esas olarak UNIX ortamındaki farklı işlemler arasında veri paylaşmak için kullanılır. İşlemler arası iletişim için bir yöntemdir. Genel uygulamalar paylaşılan bellek kullanımı için geçerli değildir ve yazar paylaşılan belleği doğrulamadı. Yukarıdaki denklemin etkisi. Eğer ilgileniyorsanız, lütfen bakınız: Paylaşılan Hafıza nedir?

Önbellek: Yüksek hızlı önbellek, CPU ile ana bellek arasında bulunan küçük ama yüksek hızlı bir bellektir. CPU'nun hızı ana bellekten çok daha yüksek olduğu için, CPU belirli bir süre beklemek için doğrudan bellekten verilere erişir Önbellek, CPU'nun henüz kullandığı veya geri dönüştürdüğü verilerin bir kısmını kaydeder. Bu sayede CPU'nun bekleme süresini azaltır ve sistemin verimliliğini artırır. Önbellek, birincil Önbellek (L1 Önbellek) ve ikincil Önbellek (L2 Önbellek) olarak ikiye ayrılır. L1 Önbellek, CPU'nun içine entegre edilmiştir. İlk günlerde, L2 Önbellek genellikle ana karta lehimlenirdi.Şimdi CPU'nun içine de entegre edilmiştir. Ortak kapasite 256KB'dir. Veya 512KB L2 Önbellek.

Buffer: Buffer, senkronize edilmemiş hıza sahip cihazlar veya farklı önceliklere sahip cihazlar arasında aktarılan verileri depolamak için kullanılan bir alan. Tampon aracılığıyla, işlemler arasındaki karşılıklı bekleme azaltılabilir, böylece veriler yavaş cihazdan okunduğunda hızlı cihazın işlem süreci kesintiye uğramaz.

Ücretsiz olarak arabellek ve önbellek: (Her ikisi de hafızayı işgal eder):

arabellek: Arabellek önbelleğinin belleği olarak, blok aygıtının okuma ve yazma arabelleğidir

Önbellek: Sayfa önbelleği olarak kullanılan bellek, dosya sisteminin önbelleği

Önbelleğin değeri çok büyükse, önbellekte çok sayıda dosya olduğu anlamına gelir. Sık erişilen dosyalar önbelleğe alınabiliyorsa, disk okuma GÇ bi çok küçük olacaktır.

Metal doku bölme çizgisi

Önbellek, CPU ve bellek arasında arabelleğe almak için kullanılan yüksek hızlı bir önbellektir;

Arabellek, bellek ve sabit diskin arabelleğe alınması için kullanılan G / Ç önbelleğidir

Önbellek başlangıçta cpu cache için kullanılıyordu, asıl neden cpu ve memory idi.Cpu hızlı olduğu için bellek devam edemiyor ve bazı değerler çok kullanıldı, bu yüzden yerleştirildi. Önbellekte asıl amaç yeniden kullanmaktır ve birinci düzey \ ikinci düzey fiziksel önbellek hızlıdır.

Arabellek, esas olarak sabit diski korumak veya ağ iletimlerinin sayısını azaltmak için disk ve bellek için kullanılır (bellek verileri, veri kümesini temsil eder). Tabii ki hız da artırılabilir (sabit diske hemen yazılmayacak veya doğrudan sabit diskten okunmayacak veriler hemen görüntülenecektir) ve yeniden kullanılabilir.Orijinalin asıl amacı diski korumaktır.

Asp.net önbelleğinde çıktı ve veri önbelleği bulunur. Asıl amaç hızı yeniden kullanmak ve artırmaktır. Çıktı önbelleği çoğunlukla okuyucudan sonra sayfaları depolar.Genel olarak, aynı HTML birden çok kez kullanılır.Aynı HTML birden çok kez kullanılır. dataSet, dataTable vb.

@page buffer = "true", tampon dolduktan sonra okuma veya yazma görüntülemek için tamponu kullanın (aynısı c'deki dosya çıkışı için de geçerlidir, ana amaç sabit diski korumaktır) ve ayrıca bir sonraki erişim hızını artırabilir. Son performans: true, bir seferde görüntülemek veya ortada göstermemek, vb. False, her seferinde bazılarını göstermektir,

Bu aynı zamanda ağ çıkışında da geçerlidir.

Dosya erişimi c için varsayılan, asp.net ile aynı olan buffer = true şeklindedir,

Response.write () ile eşdeğerdir; tampon dolduğunda çıktıda, ağ iletimlerinin sayısını azaltmak için

< % @ OutputCache Süresi = "60" VaryByParam = "yok"% > , Asp.net tarafından oluşturulan HTML'yi önbelleğe alır ve belirli bir süre içinde html'yi yeniden oluşturması gerekmez. Control.ascx ayrıca bileşen önbelleğine (htmlCach) sahiptir. Aynısı dataSet için de geçerlidir. DataCache,

Önbellek ve arabellek her ikisi de arabellektir.Tercüme açısından, önbelleği yüksek hızlı arabelleğe çevirmek daha iyidir (çünkü esas olarak bir sonraki erişimin hızlandırılması içindir) ve arabelleği arabelleğe çevirmek daha iyidir. Her ikisi de bir tampon görevi görür, ancak amaç, çok fazla okuryazarlık olmadan, esas olarak anlamak için biraz farklıdır.

1, Tampon tampondur

2, Önbellek, kitaplık önbelleğine bölünmüş yüksek hızlı bir önbellektir; veri sözlüğü önbelleği; veritabanı arabellek önbelleği

Arabellek önbelleği Arabellek önbelleği, sabit diskten okunan verileri önbelleğe alarak disk G / Ç'sini azaltır.

3. Arabellekte paylaşılan bir SQL alanı ve bir PL / SQL alanı vardır ve veritabanı arabellek önbelleğinin bağımsız bir alt önbelleği vardır

4, havuz, son yürütülen ifadeleri vb. Depolamak için paylaşılan bir havuzdur.

5, önbellek: Önbellek, daha küçük, daha yüksek hızlı bir bileşendir ve

daha düşük hızlı, daha yüksek kapasiteli bir bileşende depolanan yaygın olarak kullanılan verilere erişim. veritabanı arabellek önbelleği:

Veritabanı arabellek önbelleği, SGA'nın veri kopyalarını tutan kısmıdır

veri dosyalarından okunan bloklar. Tüm kullanıcı işlemleri eşzamanlı (eşzamanlı, eşzamanlı) bağlantılı

örneğe veritabanı arabellek önbelleğine erişimi paylaşır.

Arabellek önbelleği bloklar halinde okunur ve yazılır.

Önbellek, okunan veriyi kaydetmek içindir.Yeniden okurken çarparsa (gerekli verileri bulursa), sabit diski okumayın.Eğer isabet yoksa, sabit diski okuyun. Veriler, okuma sıklığına göre düzenlenecek, en sık okunan içerik bulunabilecek en kolay yere yerleştirilecek ve silinene kadar artık okunmayan içerik olacaktır.

Tamponlar, disk parçalanmasını ve tekrarlanan sabit disk aramalarını azaltmak için dağınık yazma işlemlerini yoğunlaştıran ve böylece sistem performansını artıran disk okuma ve yazma işlemlerine göre tasarlanmıştır. Linux, ara bellek içeriğini (yani diske yazmak) periyodik olarak boşaltmak için bir arka plan programına sahiptir veya sync komutuyla arabelleği manuel olarak boşaltabilirsiniz. Örneğin:

Bir ext2 USB flash sürücüm var. İçinde 3M MP3 cp var, ancak USB flash sürücünün ışığı atlamadı. Bir süre sonra (veya elle giriş senkronizasyonu), USB flash sürücünün ışığı atlamaya başladı. Arabellek, cihaz kaldırıldığında temizlenir, bu nedenle bazen bir cihazı kaldırmak birkaç saniye sürer.

Bir sonraki başlangıçta takas kullanım politikasını ayarlamak için /etc/sysctl.conf içinde vm.swappiness'in sağındaki sayıyı değiştirin.

biraz. Sayı aralığı 0-100'dür, sayı ne kadar büyükse, takas kullanmaya o kadar meyillidir. Varsayılan 60'tır, değiştirmeyi deneyebilirsiniz.

Her ikisi de RAM'deki verilerdir. Basit bir ifadeyle, arabellek diske yazılmak üzeredir ve önbellek diskten okunur.

Arabellek, çeşitli işlemler tarafından tahsis edilir ve giriş kuyrukları vb. İçin kullanılır. Basit bir örnek, işlem gereksinimidir.

Okunacak birden fazla alan var Tüm alanlar okunmadan önce, işlem önceden okunan alanları arabelleğe kaydeder.

Önbellek genellikle disk G / Ç isteklerinde kullanılır. Bir dosyaya birden fazla işlemin erişmesi gerekirse, dosya

Bir dahaki sefere erişimi kolaylaştırmak için onu bir önbellek haline getirin, bu da sistem performansını artırabilir.

Paylaşılan bellek (Paylaşılan bellek) için, esas olarak UNIX ortamındaki farklı işlemler arasında veri paylaşmak için kullanılır. İşlemler arası iletişim için bir yöntemdir. Genel uygulamalar paylaşılan bellek kullanımı için geçerli değildir ve yazar paylaşılan belleği doğrulamadı. Yukarıdaki denklemin etkisi. Eğer ilgileniyorsanız, lütfen bakınız: Paylaşılan Hafıza nedir?

Metal doku bölme çizgisi

# senkronizasyon

# echo 1 > / proc / sys / vm / drop_caches

eko 2 > / proc / sys / vm / drop_caches

yankı 3 > / proc / sys / vm / drop_caches

Önbellek bırakma:

Sayfa önbelleğini boşaltmak için:

yankı 1 > / proc / sys / vm / drop_caches

Diş dişlerini ve inodları serbest bırakmak için:

eko 2 > / proc / sys / vm / drop_caches

Sayfa önbelleğini, diş dişlerini ve düğümleri serbest bırakmak için:

yankı 3 > / proc / sys / vm / drop_caches

Veri kaybını önlemek için yayınlamadan önce eşitlemenin daha iyi olduğunu unutmayın.

LINUX çekirdek mekanizması nedeniyle, genel olarak kullanılan önbelleği serbest bırakmaya gerek yoktur. Bu önbelleğe alınmış içerikler, dosya ve okuma / yazma hızını artırabilir.

Nissan, elektrikli arabaları büyütmek istediği için pil işini Çin'e sattı
önceki
LOL'un yıkım ekibinin yeni versiyonu rutinler önerdi, böyle et oynadı, artık havaya uçmaktan korkmadı
Sonraki
Gece kantini çöktü, bu Eski Şehir sakinlerinin kalbindeki gece geç yemek
Tianjin FAW: Hafif paketleyin ve başarıyı bekleyin
Accord ile aynı kapı önden çekişli BMW olarak bilinir. Arabayı bilenler bunun Magotan'dan daha iyi olduğunu söylese de 180.000'e satamaz.
Kötü bir vagon Golf MK6 GTD Seyahat Sürümü
Size buz şampiyonunun okunu hızla almayı öğretmek için sınırlı görünümü kullanmak için LOL finalleri etkinliğindeki görevi tamamlayın
Coupe tarzı tasarımı ve yakışıklı görünümü BMW X4'ü yendi, bu SUV yerli üretimin gururu olarak Kuzey Amerika'ya girmek istiyor.
Kısa vadeli pazarlığın "Dinghai Shenzhen" taktikleri
DNF etkinlik özeti 21 Eylül'de başlayacak, Ulusal Gün Seti ve Ulusal Gün Yeraltı Şehri çevrimiçi
"Hız yapmaya cesaretiniz var mı? Lütfen babanızın en sevdiği duozhuan'ı dinleyin"
One Fit bunlardan ikisini satın alabilir ve aylık satışları Fit'in iki katından fazladır. En popüler küçük araba olduğu söylenir
İngiliz Sergisi | Drogba'nın forması da bir sergi olabilir mi? Guobo'nun kıdemli küratörlerinin kültürel kalıntılarının arkasındaki hikayeyi dinleyin
Grimm'in peri masalı seti, DNF tarihindeki en şirin Ulusal Gün anma töreni, satın almak için acele etmeyin!
To Top