Linux'ta RAM Bellek Önbelleği, Arabelleği ve Takası Nasıl Temizlenir


Diğer tüm işletim sistemleri gibi, GNU/Linux da bellek yönetimini verimli bir şekilde ve hatta bundan daha fazlasını uyguladı. Ancak herhangi bir işlem hafızanızı tüketiyorsa ve siz onu temizlemek istiyorsanız, Linux RAM önbelleğini temizlemenin veya temizlemenin bir yolunu sunar.

Bu makalede, genel performansı artırmak için bir Linux sisteminde RAM bellek önbelleğinin, arabelleğinin ve takas alanının nasıl temizleneceğini inceleyeceğiz.

RAM Bellek Önbelleğini, Arabelleğini ve Takas Alanını Anlama

Bir Linux sisteminde RAM bellek önbelleğini, arabelleğini ve takas alanını keşfedelim.

RAM Bellek Önbelleği

RAM bellek önbelleği, düzenli olarak erişilen verileri tutmak için çekirdek tarafından kullanılan bir mekanizmadır. Bu, sistemin yanıt verme hızını artırırken aşırı yüklenmiş bir önbellek, eski verilerin tutulmasına yol açarak performansı etkileyebilir.

Tampon

Önbellek gibi arabellek de verileri geçici olarak tutar ancak amacı farklıdır. Tamponlar, CPU ve sabit disk gibi bileşenler arasında aktarılan verileri saklayarak sorunsuz iletişimi kolaylaştırır. Ancak ara belleğe alınan verilerin fazlalığı sistem hızını engelleyebilir.

Takas alanı

Takas alanı, fiziksel RAM tükendiğinde sanal bellek görevi gören, sabit diskte ayrılmış bir alandır. Bellek yetersizliği nedeniyle sistem çökmelerini önlerken, aşırı kullanılması durumunda sistemi yavaşlatabilir.

Linux'ta Önbellek, Tampon ve Takas Alanını Temizleme

Belirli durumlarda, aşağıda açıklandığı gibi önbelleği, arabelleği veya takas alanını temizlemeniz gerekebilir.

Linux'ta RAM Bellek Önbelleği Nasıl Temizlenir?

Her Linux sisteminin, herhangi bir işlemi veya hizmeti kesintiye uğratmadan önbelleği temizlemek için üç seçeneği vardır.

PageCache'i Temizleme

1. Yalnızca PageCache'i temizlemek için, özellikle PageCache'i temizleyerek bellek kaynaklarının boşaltılmasına yardımcı olacak aşağıdaki komutu kullanabilirsiniz.

sudo sync; echo 1 > /proc/sys/vm/drop_caches

Diş Dişlerini ve İnodları Temizleme

2. Yalnızca dişleri ve düğümleri temizlemek için, dosya sistemini senkronize edecek ve hem diş girişlerini hem de düğümleri temizleyecek aşağıdaki komutu kullanabilirsiniz. Önbelleğe alınmış dizin ve inode bilgilerini serbest bırakarak sistem performansını artırır.

sudo sync; echo 2 > /proc/sys/vm/drop_caches

PageCache'i, Dentries'i ve Inode'ları Temizleme

3. Pagecache'i, dişleri ve inode'ları temizlemek için, senkronizasyonu sağlayacak aşağıdaki komutu kullanabilirsiniz dosya sistemini temizler ve sayfa önbelleğini, dişleri ve düğümleri temizler, böylece bellekte yer açılmasına ve sistem performansının iyileştirilmesine yardımcı olur.

sudo sync; echo 3 > /proc/sys/vm/drop_caches 

Yukarıdaki komutun her bir bölümünün açıklaması aşağıda verilmiştir:

  • sudo, komutu süper kullanıcı olarak yürütmek için kullanılır.
  • senkronizasyon dosya sistemi arabelleğini temizleyecektir.
  • “; ” noktalı virgül tek satırda birden fazla komutu ayırmak için kullanılır.
  • echo 3 > /proc/sys/vm/drop_caches komutu, yakın zamanda erişilen dosyalar için geçici bir depolama alanı olan sayfa önbelleğini bırakmak için kullanılır.

Not: drop_caches dosyası hangi tür önbelleğe alınmış verilerin temizlenmesi gerektiğini kontrol eder ve değerler aşağıdaki gibidir:

  • 1 – Yalnızca sayfa önbelleğini temizler.
  • 2 – Dişleri ve düğümleri temizler.
  • 3 – Sayfa önbelleğini, dişleri ve düğümleri temizler.

Çekirdek belgelerinde belirtildiği gibi, drop_caches'e yazmak, herhangi bir uygulamayı/hizmeti öldürmeden önbelleği temizleyecektir; echo komutu, dosyaya yazma işini yapar.

Disk önbelleğini temizlemeniz gerekiyorsa, kuruluş ve üretimde ilk komut en güvenlisidir: “...echo 1 > …. ” yalnızca PageCache'i temizleyecektir.

Ne yaptığınızı bilene kadar üretimde “...echo 3 > ” üzerindeki üçüncü seçeneği kullanmanız önerilmez, zira bu pagecache'i temizleyecektir, dişler ve inode'ler.

Linux'ta Takas Alanı Nasıl Temizlenir?

Takas alanını temizlemek için swapoff komutunu -a seçeneğiyle birlikte kullanabilirsiniz; bu, tüm takas bölümlerini devre dışı bırakır.

sudo swapoff -a

Ardından, tüm takas bölümlerini etkinleştirecek olan aşağıdaki komutu çalıştırarak geri çevirin.

sudo swapon -a

Linux'ta Ücretsiz Tampon, Önbellek ve Takas Yapılması Tavsiye Edilir mi?

Genel olarak, Linux'ta, bu kaynakları verimli bir şekilde yönetmek için tasarlanmış olan Linux çekirdeği tarafından kullanılabilecek Arabellek ve Önbellek'i manuel olarak boşaltmak iyi bir fikir değildir. ve bunların manuel olarak temizlenmesi sistem performansını bozabilir.

Ancak, Arabelleği ve Önbelleği temizlemeniz gereken nadir durumlar da olabilir (örneğin, şiddetli bellek baskısı yaşıyorsanız ve belleği başka yollarla boşaltamıyorsanız). Bu durumlarda dikkatli ilerlemeli ve potansiyel performans etkisinin farkında olmalısınız.

Benzer şekilde, Linux'ta takas alanını temizlemek normal koşullar altında genellikle rutin veya tavsiye edilen bir uygulama değildir.

Bellek Optimizasyonunu Otomatikleştirme

İşlemi otomatikleştirmek ve belleği düzenli olarak temizlemek için, komutları belirli aralıklarla çalıştıracak bir cron işi ayarlayabilirsiniz.

Crontab yapılandırmasını açın.

crontab -e

Önbelleği, arabelleği ve takas alanını her gün gece yarısı temizlemek için aşağıdaki satırları ekleyin:

0 0 * * * sudo sync; echo 3 > /proc/sys/vm/drop_caches
0 0 * * * sudo echo 1 > /proc/sys/vm/drop_caches
0 0 * * * sudo sync; echo 2 > /proc/sys/vm/drop_caches
0 0 * * * sudo swapoff -a && sudo swapon -a

Cron ile iş planlama hakkında ek bilgi için ‘11 Cron Planlama İşi’ başlıklı yazımıza göz atmak isteyebilirsiniz.

Linux Üretim Sunucusunda RAM Önbelleğinin Temizlenmesi Tavsiye Edilir mi?

Hayır öyle değil. RAM önbelleğini her gün sabah saat 2'de temizlemek için bir komut dosyası planladığınız bir senaryoyu düşünün. Her gün sabah saat 2'de komut dosyası yürütülür ve RAM önbelleğiniz temizlenir. Ancak bir gün, web sitenizde beklenmedik derecede yüksek sayıda kullanıcı çevrimiçi oluyor ve bu da sunucu kaynaklarınıza önemli bir talep oluşturuyor.

Eş zamanlı olarak, zamanlanmış komut dosyası önbellekteki her şeyi çalıştırır ve temizler. Artık tüm kullanıcılar diskten veri alıyor ve bu da potansiyel olarak sunucunun çökmesine ve veritabanının bozulmasına yol açıyor. Bu nedenle, eylemlerinize dikkat ederek RAM önbelleğini yalnızca gerektiğinde temizlemeniz önemlidir. Aksi halde Kargo Tarikatı Sistem Yöneticisi olma riskiyle karşı karşıya kalırsınız.

Çözüm

Sorunsuz çalışan bir Linux sistemi için verimli bellek yönetimi çok önemlidir. RAM bellek önbelleğinin, arabelleğinin ve takas alanının düzenli olarak temizlenmesi sistem performansını önemli ölçüde artırabilir. Bu mekanizmaları anlayarak ve sağlanan komutları kullanarak Linux sisteminizin en iyi şekilde çalışmasını sağlayabilirsiniz.

Şimdilik bu kadar. Makaleyi beğendiyseniz, lütfen değerli görüşlerinizi yorumlarda paylaşmayı unutmayın. Üretim ve kurumsal ortamlarda RAM önbelleğini ve arabelleğini temizlemek için iyi bir yaklaşım olduğuna inandığınız yaklaşım hakkındaki düşüncelerinizi bize bildirin.