Verim

Linux'ta Önbellek Nasıl Temizlenir

Linux'ta Önbellek Nasıl Temizlenir
Linux dosya sistemi önbelleği (Sayfa Önbelleği), IO işlemlerini daha hızlı yapmak için kullanılır.  Belirli koşullar altında, bir yönetici veya geliştirici önbelleği el ile temizlemek isteyebilir.  Bu yazıda Linux Dosya Sistemi önbelleğinin nasıl çalıştığını açıklayacağız.  Ardından, önbellek kullanımının nasıl izleneceğini ve önbelleğin nasıl temizleneceğini göstereceğiz.  Önbelleğin beklendiği gibi çalıştığını ve önbellek temizleme ve temizleme prosedürünün de beklendiği gibi çalıştığını doğrulamak için bazı basit performans deneyleri yapacağız.

Linux Dosya Sistemi Önbelleği Nasıl Çalışır?

Çekirdek, genel performansı daha hızlı hale getirmek için dosya sistemi disk erişimlerini önbelleğe almak için belirli bir miktarda sistem belleği ayırır.  Linux'taki önbellek denir Sayfa Önbelleği. Sayfa önbelleğinin boyutu, büyük miktarda disk bloğunu önbelleğe almak için etkinleştirilen cömert varsayılanlarla yapılandırılabilir.  Önbelleğin maksimum boyutu ve verilerin önbellekten ne zaman çıkarılacağına ilişkin politikalar, çekirdek parametreleriyle ayarlanabilir.  Linux önbellek yaklaşımına geri yazma önbelleği denir.  Bu, eğer veri diske yazılırsa, belleğe önbelleğe yazılır ve diskle senkronize olana kadar önbellekte kirli olarak işaretlenir.  Çekirdek, önbellekte daha fazla alana ihtiyaç duyulduğunda hangi verilerin önbellekten çıkarılacağını optimize etmek için dahili veri yapılarını korur.

Linux okuma sistemi çağrıları sırasında, çekirdek, istenen verilerin önbellekteki veri bloklarında saklanıp saklanmadığını kontrol eder, bu başarılı bir önbellek isabeti olur ve disk sistemine herhangi bir IO yapmadan veriler önbellekten döndürülür.  Bir önbellek kaçırma durumunda, veriler IO sisteminden alınır ve önbellek politikalarına göre güncellenir, çünkü bu aynı veriler muhtemelen tekrar istenecektir.

Belirli bellek kullanım eşiklerine ulaşıldığında, arka plan görevleri, bellek önbelleğini temizlediğinden emin olmak için kirli verileri diske yazmaya başlar.  Bunlar, bellek ve CPU yoğun uygulamaların performansı üzerinde bir etkiye sahip olabilir ve yöneticiler ve/veya geliştiriciler tarafından ayar yapılmasını gerektirebilir.

Önbellek Kullanımını görüntülemek için Ücretsiz komutu kullanma

Sistem belleğini ve önbelleğe almaya ayrılan bellek miktarını analiz etmek için komut satırından free komutunu kullanabiliriz.  Aşağıdaki komuta bakın:

# serbest -m

den gördüğümüz Bedava yukarıdaki komut 7.Bu sistemde 5 GB RAM.  Bunun sadece 209 MB'ı kullanılıyor ve 6'sı.5 MB ücretsizdir.  Arabellek önbelleğinde 667 MB kullanılır.  Şimdi 1 Gigabyte'lık bir dosya oluşturmak için bir komut çalıştırarak ve dosyayı okuyarak bu sayıyı artırmaya çalışalım.  Aşağıdaki komut, yaklaşık 100MB rastgele veri oluşturacak ve ardından dosyanın 10 kopyasını bir araya toplayacaktır büyük_dosya.

# dd if=/dev/random of=/root/data_file count=1400000
# 'seq 1 10' içinde i için; yankı $i yap; cat veri_dosyası >> büyük_dosya; bitti

Şimdi bu 1 Gig dosyasını okuduğunuzdan emin olacağız ve ardından ücretsiz komutu tekrar kontrol edeceğiz:

# cat büyük_dosya > /dev/null
# serbest -m

Tampon önbellek kullanımının 667'den 1735 Megabayt'a yükseldiğini görebiliriz, arabellek kullanımında kabaca 1 Gigabayt artış.

Proc Sys VM Önbellek Bırakma Komutu

Linux çekirdeği, önbelleği bırakmak için bir arayüz sağlar, hadi bu komutları deneyelim ve serbest ayar üzerindeki etkisini görelim.

# echo 1 > /proc/sys/vm/drop_caches
# serbest -m

Yukarıda, arabellek önbellek tahsisinin çoğunluğunun bu komutla serbest bırakıldığını görebiliriz.

Önbellekleri Düşüren Deneysel Doğrulama Çalışıyor

Dosyayı okumak için önbelleği kullanmanın performans doğrulamasını yapabilir miyiz?? Dosyayı diskten okumanın ne kadar sürdüğünü test etmek için dosyayı okuyalım ve /dev/null'a geri yazalım.  ile zaman geçireceğiz zaman komut.  Bu komutu önbelleği temizledikten hemen sonra yukarıdaki komutlarla yapıyoruz.

8 aldı.Dosyayı okumak için 4 saniye.  Dosyanın dosya sistemi önbelleğinde olması gerektiğine göre şimdi tekrar okuyalım ve şimdi ne kadar sürdüğünü görelim.

Boom!  Sadece aldı .8'e kıyasla 2 saniye.Dosya önbelleğe alınmadığında okumak için 4 saniye.  Doğrulamak için önce önbelleği temizleyerek ve ardından dosyayı 2 kez okuyarak bunu tekrar edelim.

Beklendiği gibi mükemmel çalıştı.  8.Önbelleğe alınmamış okuma için 5 saniye ve .Önbelleğe alınmış okuma için 2 saniye.

Sonuç

Sayfa önbelleği, Linux sistemlerinde otomatik olarak etkinleştirilir ve son kullanılan verileri önbellekte depolayarak şeffaf bir şekilde IO'yu hızlandırır.  Çekirdeğe önbelleği bırakmasını ve önbellek için kullanılan belleği boşaltmasını belirten /proc dosya sistemine bir yankı komutu göndererek kolayca yapılabilen önbelleği manuel olarak temizlemek istiyorsanız.  Komutu çalıştırma talimatları bu makalede yukarıda gösterilmiştir ve önbellek davranışının temizlemeden önceki ve sonraki deneysel doğrulaması da gösterilmiştir.

Linux için En İyi 5 Arcade Oyunu
Günümüzde bilgisayarlar oyun oynamak için kullanılan ciddi makinelerdir. Yeni yüksek puanı alamazsan, ne demek istediğimi anlayacaksın. Bu yazıda, bug...
Wesnoth 1 Savaşı.13.6 Geliştirme Yayınlandı
Wesnoth 1 Savaşı.13.Geçen ay yayınlanan 6. sürüm, 1. sürümdeki altıncı geliştirme sürümüdür.13.x serisi ve özellikle kullanıcı arayüzü için bir dizi i...
Ubuntu 14'te League Of Legends Nasıl Kurulur.04
League of Legends hayranıysanız, bu, League of Legends koşusunu test etmeniz için bir fırsattır. Linux kullanıcısıysanız LOL'nin PlayOnLinux'ta destek...