İçerikler
Linux'ta RAM Önbelleği, buffer ve Swap Alanı Nasıl Temizlenir ?
Linux'ta Önbellek Nasıl Temizlenir?
- Yalnızca PageCache’yi temizleyin.
# sync; echo 1 > /proc/sys/vm/drop_caches
- Dentries ve inodları temizleyin.
# sync; echo 2 > /proc/sys/vm/drop_caches
- PageCache, Dentries ve inodları temizleyin.
# sync; echo 3 > /proc/sys/vm/drop_caches
Yukarıdaki komutların açıklamasını şu şekilde sağlayabiliriz.
sync, dosya sistemi arabelleğini temizleyecektir. “;” İle Ayrılmış Komutu sırayla çalıştırın. Shell, sıradaki bir sonraki komutu yürütmeden önce her komutun sona ermesini bekler. Kernel belgelerinde belirtildiği gibi, drop_cache’ye yazmak herhangi bir uygulamayı / hizmeti killemeden önbelleği temizleyecektir, komut echo dosyaya yazma işini yapmaktadır.
Disk önbelleğini temizlemeniz gerekiyorsa, ilk komut v”… echo 1>…” olarak en güvenlisidir. Yalnızca PageCache’yi temizler. PageCache, dentries ve inode’ları temizleyeceğinden, “… echo 3>” üzerindeki üçüncü seçeneği kullanmanızı önermiyorum.
Linux Kernel tarafından kullanılabilecek Linux’ta Buffer ve Cache’i serbest bırakmak iyi bir fikir mi?
Çeşitli ayarları uygularken ve gerçekten özel olarak I/O kapsamlı karşılaştırmada uygulanıp uygulanmadığını kontrol etmek istediğinizde, buffer cache temizlemeniz gerekebilir. Önbelleği yukarıda açıklandığı gibi sistemi yeniden başlatmadan bırakabilirsiniz, yani kesinti gerektirmez.
Linux, diske bakmadan önce disk önbelleğine bakacak şekilde tasarlanmıştır. Kaynağı önbellekte bulursa, istek diske ulaşmaz. Önbelleği temizlersek, işletim sistemi diskteki kaynağı arayacağından disk önbelleği daha az kullanışlı olacaktır.
Ayrıca, önbellek temizlenirken ve işletim sisteminin gerektirdiği her kaynak disk önbelleğine yeniden yüklenirken sistemi birkaç saniye yavaşlatacaktır.
Şimdi, bir önbellek cron görevi aracılığıyla her gün saat 2’de RAM önbelleğini otomatik olarak temizlemek için bir shell Scripti oluşturacağız. Bir shell scripti clearcache.sh oluşturun ve aşağıdaki satırları ekleyin.
#!/bin/bash
# Note, we are using “echo 3”, but it is not recommended in production instead use “echo 1”
echo “echo 3 > /proc/sys/vm/drop_caches”
Clearcache.sh dosyasında execute iznini ayarlayın.
# chmod 755 clearcache.sh
Artık ram önbelleğini temizlemek istediğinizde scripti çağırabilirsiniz.
Şimdi her gün saat 2’de RAM önbelleğini temizlemek için bir cron ayarlayın. Düzenlemek için crontab’i açın.
# crontab -e
Aşağıdaki satırı ekleyin, her gün 02: 00’da çalıştırmak için kaydedin ve çıkın.
0 2 * * * /path/to/clearcache.sh
Bir işi nasıl cronlayacağınıza dair daha fazla ayrıntı için ayrıca hazırlayacağımız cron makalemize göz atabilirsiniz.
Sunucuda RAM önbelleğini otomatik olarak temizlemek iyi bir fikir mi?
Hayır değil, zira Komut dosyasını her gün saat 2’de ram önbelleğini temizleyecek şekilde planladığınız bir durumu düşünün. Her gün saat 2’de komut dosyası çalıştırılır ve RAM önbelleğinizi temizler. Herhangi bir nedenle bir gün, kullanıcıların web sitenizde çevrimiçi olması ve sunucunuzdan kaynak araması beklenenden fazla olabilir.
Aynı zamanda programlanmış komut dosyası çalıştırılır ve önbellekteki her şeyi temizler. Artık tüm kullanıcılar diskten veri alıyor. Sunucu çökmesine ve veri tabanının bozulmasına neden olacaktır. Öyleyse ram-cache’yi yalnızca gerektiğinde temizleyin.
Linux’ta Swap Alanı Nasıl Temizlenir?
Swap alanını temizlemek istiyorsanız, aşağıdaki komutu çalıştırabilirsiniz.
# swapoff -a && swapon -a
Ayrıca yukarıda saydığımız riskleri göz önünde bulundurarak bir cron scripti ekleyebilirisniz.
RAM Önbelleğini ve Swap Alanını temizlemek için uygun bir komut dosyası oluşturmak için yukarıdaki her iki komutu tek bir komutta birleştireceğiz.
# echo 3 > /proc/sys/vm/drop_caches && swapoff -a && swapon -a && printf ‘\n%s\n’ ‘Ram-cache and Swap Cleared’ YADA $ su -c “echo 3 >’/proc/sys/vm/drop_caches’ && swapoff -a && swapon -a && printf ‘\n%s\n’ ‘Ram-cache and Swap Cleared'” root
Yukarıdaki her iki komutu da test ettikten sonra, scripti çalıştırmadan önce ve sonra “free -h” komutunu çalıştırabilir ve önbelleği kontrol edebilirsiniz.
Anlatımımız buradan sona erdi, umarım faydalı olmuştur.




