"Enter"a basıp içeriğe geçin

Linux’ta önbellek nasıl temizlenir – Linux Önerileri

G/Ç işlemlerini daha hızlı hale getirmek için Linux dosya sistemi önbelleğini (Sayfa Önbelleği) kullanır. Belirli koşullar altında, yönetici veya geliştirici önbelleği manuel olarak temizlemek isteyebilir. Bu yazıda Linux dosya sistemi önbelleğinin nasıl çalıştığını açıklayacağız. Ardından, size önbellek kullanımını nasıl izleyeceğinizi ve önbelleği nasıl temizleyeceğinizi göstereceğiz. Önbelleğin beklendiği gibi çalıştığını ve önbelleği temizlemenin ve temizlemenin de beklendiği gibi çalıştığını doğrulamak için bazı basit performans testleri 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. Buna Linux’ta önbellek denir Sayfa önbelleği. Sayfa önbellek boyutu, büyük miktarda disk bloğunu önbelleğe almak için etkinleştirilen cömert varsayılan ayarlarla yapılandırılabilir. Maksimum önbellek boyutu ve verilerin önbellekten ne zaman kaldırılacağına ilişkin politikalar, çekirdek parametreleri kullanılarak ayarlanabilir. Linux’ta bu önbelleğe alma yöntemine yazma önbelleği denir. Bu, veriler diske yazılırsa, bellekte önbelleğe alınacağı ve diskle eşitlenene kadar önbellekte “kirli” olarak işaretleneceği anlamına gelir. Çekirdek, daha fazla önbellek alanı gerektiğinde önbellekten kaldırılan verileri optimize etmek için dahili veri yapılarını korur.

Linux için sistem çağrılarını okurken çekirdek, istenen verilerin önbelleğe alınmış veri bloklarında depolanıp depolanmadığını kontrol eder, bu önbellek başarılı bir sonuçtur ve veriler önbellekten herhangi bir G/Ç olmadan disk sistemine döndürülür. Önbellek eksiklikleri için, veriler G/Ç sisteminden alınır ve önbellek politikalarına göre yenilenir, çünkü aynı verilerin tekrar istenmesi muhtemeldir.

Belirli bellek kullanım sınırlarına ulaşıldığında, arka plan görevleri önbelleğin temizlendiğinden emin olmak için kirli verileri diske yazmaya başlar. Bellek ve CPU yoğun uygulamaların performansını etkileyebilirler ve yöneticiler ve/veya geliştiriciler tarafından ayar gerektirebilirler.

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

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

kim olduğunu gör Bedava Yukarıdaki şey, bu sistemin 7.5GB RAM’e sahip olmasıdır. Yalnızca 209 MB kullanılır ve 6,5 MB ücretsizdir. Önbellek 667 MB kullanır. Şimdi 1GB’lık bir dosya oluşturmak ve dosyayı okumak için bir komut çalıştırarak bu sayıyı artırmaya çalışalım. Aşağıdaki komut, yaklaşık 100 MB rastgele veri oluşturacak ve ardından dosyanın 10 kopyasını bir araya getirecektir. büyük dosya.

# dd if = / dev / random of = / root / data_file sayısı = 1400000
# ‘sıra 1 10’da i için; yankı $i; cat veri_dosyası >> büyük_dosya; tamamlamak

Şimdi bu Gig’i okuduğunuzdan emin olacağız ve ardından ücretsiz komutla tekrar kontrol edeceğiz:

# cat large_file> / dev / null
#serbest m

Önbellek kullanımının 667’den 1735MB’a yükseldiğini görebiliriz, bu da önbellek kullanımında kabaca 1GB’lık bir artıştır.

Proc Sys VM önbellek serbest bırakma komutu

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

# yankı 1> /proc/sys/vm/drop_caches
#serbest m

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

Önbelleklerin çalışmasının deneysel olarak doğrulanması

Dosyayı okumak için önbelleği kullanmanın performansını kontrol edebilir miyiz? Bir dosyayı diskten okumanın ne kadar sürdüğünü test etmek için dosyayı okuyup /dev/null dizinine geri yazalım. ile zaman geçireceğiz zaman önderlik etmek. Bunu, yukarıdaki komutlarla önbelleği temizledikten hemen sonra yapıyoruz.

Dosyayı okumak 8,4 saniye sürdü. Artık dosya dosya sistemi önbelleğinde olduğuna göre, tekrar okuyalım ve ne kadar sürdüğünü görelim.

kabarcık! Dosya önbelleğe alınmadığında, okunması 8,4 saniyeye kıyasla yalnızca 0,2 saniye sürdü. Bunu önce önbelleği temizleyerek ve ardından kontrol etmek için dosyayı iki kez okuyarak tekrarlayalım.

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

çözüm

Sayfa önbelleğe alma, Linux sistemlerinde otomatik olarak etkinleştirilir ve son kullanılan verileri önbelleğe alarak G/Ç’yi şeffaf bir şekilde hızlandırır. Önbelleği manuel olarak temizlemek istiyorsanız, /proc dosya sistemine çekirdeğe önbelleği serbest bırakması ve önbellek için kullanılan belleği serbest bırakması talimatını veren bir yankı komutu göndererek bunu yapmak kolaydır. Yukarıdaki komutu çalıştırmak için talimatlar bu makalede sunulmaktadır ve silme öncesi ve sonrası önbellek davranışının deneysel doğrulaması da sunulmaktadır.

Diğer gönderilerimize göz at

[wpcin-random-posts]

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir