14 Ağustos 2018 Salı

redisgreen ile redis performans takibi

NoSQL veritabanları arasında rahat kullanımı, düşük kaynak tüketimi ile dikkat çeken Redis key-value deposunun uygulama geliştiriciler büyük bir dezavantajı var. Performans takibi ve monitoring. MongoDB, couchbase gibi daha büyük dağıtımlarda bu dahili dashboardlar ile sağlanabiliyor. MongoDB bunu ücretsiz cloud monitoring hizmeti ile sağlarken Couchbase ise belki en gelişmiş dahili yönetim panellerinden birine sahip. Redis çok ufak boyutu, inanılmaz hızı ile dağıtık cache sistemlerinin standartı olmuşken (Hazelcast'i lisans ve JVM yüzünden saymıyorum) bu yönetim meselesinde ciddi anlamda dezavantajlı durumda. 

Tabi ki bu redis performans takibi için çözüm yok anlamına gelmiyor. Aslında komut satırından dahili MONITOR ve INFO komutları ile birçok bilgi alabiliyoruz. Bunun araç haline çevrilmiş hali ise dahili olarak rediste yok. Github'da bu işi yapan bir çok proje var. Bunlardan biri LittlePeng/redis-monitor:

Bir diğer çözüm ise redisgreen. Redis green cloud üzerinden çalışan, verdiğimiz bilgilerle bizim redis sunucumuza bağlanıp oldukça detaylı bilgi veren bir servis. Kullanılan bellek, kayıtlı key sayısı gibi temel verilerden tutun da bellek fragmantasyonuna kadar oldukça işe yarar verilere ulaşmamızı sağlıyor



Memory fragmentation değeri 1'in altına düştüğünde belleğin yetersiz kalmaya başladığını ve swapa düşme ihtimaliniz arttığını yani performansın ciddi anlamda düşebileceğini gözlemleyebiliyoruz. 1.0'ın üzerindeki değerler ise redis'in belleği etkin kullanamadığını söylüyor. Böyle bir durumda dump alıp restart atarak 1'e yakın değer elde edebiliyoruz.

Redis green ile alabildiğimiz diğer önemli bir metrik ise cache ve miss değerleri. Sorgularımızın kaçı redisten cevap alabilmiş kaçı yanıtsız kalmış doğrudan redis üzerinden bu değerlere ulaşabiliyoruz. Açıkçası bunu doğrudan nasıl elde ederiz bilmiyorum, redisgreen'i görmeden önce bu tarz bir metriği uygulama tarafında oluşturmaya çalışırdım.


Bunun dışında komut bazlı olarak oldukça işe yarar istatistikler alabiliyoruz:

Bunun dışında yavaş çalışan komutlar gibi verilere de redisgreen üzerinden oluşup buna göre optimizasyon yapmak mümkün.

Daha fazla bilgi için:

Hiç yorum yok:

Yorum Gönder

hmm