Bellek önbelleğini boşaltmak (drop caches) gerekli mi; ne zaman yapılır?
Kısa cevap
Normal işletimde gerekli değildir. Sistem boştaki belleği disk erişimini hızlandırmak için önbellek olarak kullanır ve bu alan uygulamalar istediğinde kendiliğinden geri verilir; asıl bakılacak değer sys-cmd memory status çıktısındaki available sütunudur, free değerinin düşük olması sorun değildir. Önbellek bir ölçüm ya da test öncesinde sıfırlanmak ya da buff/cache alanının gerçekten geri verilebildiği görülmek istendiğinde boşaltılır: sys-cmd memory drop-page-cache yalnızca sayfa önbelleğini, sys-cmd memory drop-all-caches buna ek olarak dosya ve dizin bilgisi önbelleklerini boşaltır. İki komut da onay ister, geçici bir yavaşlamaya yol açar ve kalıcı çözüm değildir; önbellek kısa sürede yeniden dolar.
Nasıl Çalışır?
Cihazın belleği uygulamalar ile önbellek arasında paylaşılır:
- Okunan dosyalar önbellekte tutulur: log, grafik ve yapılandırma dosyaları okunduğunda içerikleri bellekte kalır; aynı dosya yeniden okunduğunda diske gidilmez. Bu alan
memory statusçıktısındabuff/cachesütununda görünür. - Önbellek gerektiğinde küçülür: bir uygulama bellek istediğinde önbellekteki alan ona verilir. Bu yüzden
availablesütunu,freeile geri verilebilecek önbelleğin toplamına yakındır. - Boşaltma komutları önbelleği hemen siler: önce bekleyen disk yazmaları tamamlanır, ardından önbellek boşaltılır ve alan
buff/cachesütunundanfreesütununa geçer. Uygulama verisine dokunulmaz. - Önbellek yeniden dolar: boşaltmadan sonra dosyalar bir süre yeniden diskten okunur; bu sürede disk erişimi yavaşlar ve önbellek kullanımla birlikte yeniden büyür.
Karşılaştırma
| memory drop-page-cache | memory drop-all-caches | memory free-swap | |
|---|---|---|---|
| Ne boşaltır | Sayfa önbelleği | Sayfa önbelleği, dentry ve inode önbellekleri | Swap içeriği belleğe taşınır, swap yeniden açılır |
| Başarım etkisi | Geçici yavaşlama | Belirgin yavaşlama; log yazan ve çok dosya açan servislerde daha çok hissedilir | Swap boşaltılırken dakikalar sürebilir, cihaz yavaşlayabilir |
| Ne zaman | Ölçüm ya da test öncesinde önbelleği sıfırlamak | Dosya ve dizin bilgisi önbellekleri de sıfırlanmak istendiğinde; bakım penceresinde | available yüksek olduğu hâlde swap doluysa |
| Risk | Düşük | Trafik altında belirgin başarım etkisi | available, swap used değerinden belirgin biçimde büyük değilse bellek tükenebilir |
| Onay başlığı | Sayfa önbelleğini temizlemek üzeresiniz | Tüm önbellekleri temizlemek üzeresiniz | Swap alanını temizlemek üzeresiniz |
TR7'de Önbellek Boşaltma
Komutlar WEB-CLI'da sys-cmd memory altında bulunur ve yalnızca User Type'ı Admin olan kullanıcıda çalışır. Seçili v-device ve route table'dan etkilenmez, her zaman komutun çalıştırıldığı cihazda çalışır; cluster'da her cihaz için ayrı çalıştırılır. Her çalıştırma kullanıcı loglarına yazılır.
Önerilen sıra önce durumu görmek, gerekiyorsa boşaltmak ve sonucu yeniden okumaktır:
sys-cmd memory status
sys-cmd memory drop-page-cache
sys-cmd memory status- Boşaltma komutları çalıştırıldığında onay ekranı açılır; Türkçe arayüzde
evet, İngilizce arayüzdeyesyazılınca işlem uygulanır. Başka bir şey yazılırsaOnay geçersiz. İşlem iptal edildi.iletisi çıkar; Esc onay ekranını kapatır. - İş bitince
Sayfa önbelleği başarıyla temizlendi.ya daTüm önbellekler başarıyla temizlendi (sayfa önbelleği, dentry ve inode).yazılır. Bu ileti işlemin sonucuna bakılmadan yazılır; üstünde kırmızı satır varsa işlem tamamlanmamış olabilir ve durummemory statusile doğrulanır. - Swap için sys-cmd memory free-swap kullanılmadan önce
MemsatırınınavailabledeğeriSwapsatırınınuseddeğeriyle karşılaştırılır.
Sık Karıştırılan Noktalar
- "
freedeğeri düşükse bellek bitmiştir." Boştaki bellek önbellek olarak kullanılır; bellek sıkışmasınıavailablesütunu gösterir.availableyüksekse önbellek boşaltmaya gerek yoktur. - "Önbelleği düzenli boşaltmak cihazı hızlandırır." Tersine, boşaltmadan sonra dosyalar yeniden diskten okunur ve cihaz bir süre yavaşlar; önbellek kısa sürede yeniden dolar.
- "drop-all-caches daha kapsamlı olduğu için her zaman tercih edilir." Başarım etkisi daha belirgindir; ölçüm öncesi sıfırlama için
drop-page-cacheyeterlidir vedrop-all-cachesyoğun saatlerde çalıştırılmaz. - "Swap doluysa önbelleği boşaltmak yeter." Önbellek boşaltma swap içeriğini değiştirmez; swap için
memory free-swapvardır. Swap sık sık doluyorsa cihazın belleği iş yüküne yetmiyordur; bu durum komutlarla değil kaynak planlamasıyla çözülür.
Dokümantasyonda nasıl yapılır
