Couchbase Rebalance Benchmark Testi
Bu yazımda Couchbase clusterındaki rebalance sırasında node başına yapılanan maksimum hareket sayısının rebalance süresine göre karşılaştırılması ve etkisinin incelenmesi için yaptığımız testten bahsedeceğim.
Rebalance Nedir?
Couchbasede vbucketlar active ve replica olarak tutulur. Replicalar bucketların yedeğini tutar. Active ve Replica vbucketlar farklı nodelar üzerinde bulunur ve vbucketlar data servis nodeları arasında eşit olarak dağıtılır.
Rebalance , active ve replica vbucketların sırayla ya da aynı anda birden çok vbucketın taşınması işlemidir.Rebalancedan sonra, istekler güncellenmiş konumlarındaki active vbucketlara yönlendirilir.
Rebalance, uygulamaların veri erişimini kesintiye uğratmaz. Vbucket veri aktarımı aşamalar halinde gerçekleşir. Bu yüzden, rebalance herhangi bir nedenle durursa, durdurulduğu noktadan yeniden başlatılabilir.
Rebalance Settings-Advanced Rebalance Settings
Max moves per node during rebalance , her bir nodeda izin verilen maksimum eş zamanlı vbucket hamlesi sayısını belirler.
Parametrenin minimum değeri 1, maksimum 64, varsayılan 4'tür.
Test Senaryosu
Total rebalance süremizde değişiklik ve parametreler arasında ki farkı gözlemlemek için bu testi yaptık.
Bu amaçta kullandığımız Couchbase clusterının özellikleri ise ;
- Total Node Count : 10 Data Node
- Total Data Size (GB) : 700
- Node Cpu : 8 Core
- Node Memory : 32 GB
- Couchbase Version : 7.0.3 Enterprise
- Senaryo
Max moves per node during rebalance ayarını defaultta bıraktığımızda ;
Failover sonrası rebalance süreci 349sn iken nodeu geri ekledikten sonraki rebalance süreci 321sn sürdüğünü gözlemledik ve aslında defaultta node eklerken veya çıkarırken rebalance sürecinde pekte bir fark gözlemleyemedik.
2. Senaryo
Max moves per node during rebalance ayarını 8 yaptığımızda ;
Failover sonrası rebalance süreci 58sn iken nodeu geri ekledikten sonraki rebalance süreci 271sn sürdüğünü gözlemledik.Node eklerken veya çıkarırken rebalance sürecinde yaklaşık 4.5 katı kadar fark gözlemledik.
Hem failover sonrası hem node ekleme sonrasında ki sürelerde kazanç sağladık.
3. Senaryo
Max moves per node during rebalance ayarını 16 yaptığımızda ;
Failover sonrası rebalance süreci 67sn iken nodeu geri ekledikten sonraki rebalance süreci 274sn sürdüğünü gözlemledik.Node eklerken veya çıkarırken rebalance sürecinde yaklaşık 4 katı kadar fark gözlemledik.
Defaulta göre özellikle failover sonrasında ki rebalance süresinde kazanç sağlarken , parametre 8'e göre rebalance sürelerinde kazanç elde edemedik.
4. Senaryo
Max moves per node during rebalance ayarını 32yaptığımızda ;
Failover sonrası rebalance süreci 56sn iken nodeu geri ekledikten sonraki rebalance süreci 269sn sürdüğünü gözlemledik.Node eklerken veya çıkarırken rebalance sürecinde yaklaşık 4.8 katı kadar fark gözlemledik.
Diğer parametre değerlerine göre özellikle failover sonrasında ki rebalance süresinde kazanç sağladık.
Görselde parametre değişikliğine göre failover sonrası rebalance toplam zamana etkisi bulunmaktadır.
Test çıktılarından biri de failover sonrası rebalance süresinin , noda ekledikten sonraki rebalance süresine göre daha az olduğunu gözlemleyebildik.
Tüm parametreler için senaryo sn bazlı total rebalance oranı
Kullandığımız Couhbase clusterlarında Max moves per node during rebalance parametresi default (4) iken test sonucunda 8–16–32 değerleri arasında fazla bir fark olmadığından bizim için değeri 8 yapmamız yeterli olacaktır.
Yüksek parametre , yüksek kaynak tüketimi yapıp rebalance performansını iyileştirebilir veya düşük parametre kaynak tüketimine etkisi olmaz bile rebalance performansını düşürebilir.
Referans
https://docs.couchbase.com/server/current/learn/clusters-and-availability/rebalance.html
Sevgilerrr 😇