1. Genel Bakış
- ZFS dosya sisteminin önbelleğinde (ARC) ortaya çıkan thrashing olgusunun tanımı, teşhisi, müdahale ve önleme yöntemlerinin özeti
2. ZFS ARC thrashing tanımı
- Kavram: Önbellek isabetlerinin (Hit) art arda başarısız olması nedeniyle sık sık önbellek öğesi değiştirme (Eviction) gerçekleşir ve bunun sonucunda sistem performansı tersine düşer
- Etkisi: Yüksek performanslı I/O ortamlarında (ör. veritabanı sunucuları) ciddi hizmet kesintilerine yol açabilir
3. Başlıca teşhis belirtileri
- CPU
iowait değerinin %20’nin üzerinde kalıcı olması
- CPU
system mode kullanım oranının normal seviyeye kıyasla artması
- Önbellek isabet oranının (Hit rate) düşmesi (normal verilerle karşılaştırma gerekir)
- Temel belirti:
arc_prune, arc_evict kernel thread’lerinin CPU kullanımının %90’ın üzerine çıkması thrashing’in kesin göstergesidir
4. Acil müdahale yöntemi
- İşlem: Linux dosya sistemi önbelleğini manuel olarak temizlemek
- Komut:
echo 3 > /proc/sys/vm/drop_caches
- Etkisi: Page cache ve slab nesnelerini birlikte temizler
- Özellikleri:
- Diske henüz yazılmamış veriler (dirty item) korunur, bu nedenle veri kaybı olmaz (yıkıcı değildir)
- Çalıştırıldıktan hemen sonra, önbellek yeniden dolana kadar geçici performans düşüşü yaşanır
5. Temel önleme yöntemi
- Neden: Sistemin iş yüküne kıyasla ayrılan ARC önbellek boyutunun yetersiz olması
- ARC boyutu (
zfs_arc_max):
- Varsayılan değer zaten sistem belleğinin 1/2’si kadardır (Linux tabanında) ve oldukça büyüktür
- Diğer uygulamalarla bellek rekabetine yol açabileceği için rastgele artırmak zordur
- Çözüm yolları:
- Diğer uygulamaların bellek kullanımı yüksekse, rekabeti önlemek için
zfs_arc_max değerini düşürün
- Temel sorunu çözmek için fiziksel belleği artırmak (scale-up) en kesin yöntemdir
Henüz yorum yok.