Cassandra Benchmark Test Results

Seyyid Ahmet Demir
2 min readApr 16, 2021

Merhabalar,

Bu yazımda Cassandra cluster üzerinde yaptığımız benchmark testi ve sonuçlarından bahsetmeye çalışacağım.

Test Ortamı Bilgileri
CPU : 8 Core
RAM : 16 GB
Node Count : 6 (3 node DC1, 3 node DC2)
Cassandra Version : Apache Cassandra 3.11

Ortam bilgileri yukarıdaki gibi olup test için cassandra stress toolu kullanılmış olup linkten kullanım şekillerini inceleyebilirsiniz.

Öncelikle bu testteki odağımızın kaynak değerleri değil optimal çalışma şekli olduğunu belirtmek istiyorum. Daha çok kaynak her zaman daha fazla performans anlamına gelmemektedir. Bu testteki amacımız ideal çalışma koşullarını sağlamakla ilgili olup kaynak değerlerden bağımsız bir yaklaşım sergilenmiştir.

Aşağıda görüldüğü gibi testin sonuçlarını bir tablo halinde yorumlamaya çalıştık. Buradaki parametrelerden biraz bahsedelim.

Thread Count : Anlık işlem yapan thread sayısı.
Total ops : Toplam yapılan işlem sayısı.(%50 write,%50 read olacak şekilde)
op/s : Saniyede gerçekleştirilen operasyon sayısı.
mean(latency) : İşlemler gerçekleştirilirken oluşan ortalama gecikmenin milisaniye cinsinden değeri
max(latency) : İşlemler gerçekleştirilirken oluşan maximum gecikmenin milisaniye cinsinden değeri
Total time : İşlem yapılırken geçen toplam zamanın saniye cinsinden değeri
Improvement : Thread count artışının perfomansa etkisi

General Test Results
Read/Write ratio and metrics

Yukarıda paylaşılan 2 grafikte total request ve read/write performansları gözlemleniyor. Bu verilere dayanrak şu çıkarımlara ulaşabiliyoruz ;

  • Öncelikle performans kaynağın değeri değil kullanım şekli ile doğru orantılıdır.
  • Dikkatli bakılırsa Thread count 271 den sonra 406'ya çıktığında performansta %27 lik bir düşüş oluyor. Sonrasında ise 609 ve 913 değerlerinde yine performans artışı olduğunu görüyoruz. Ancak optimal kullanım/performans değişimi kıyası yapılırsa 271 thread sayısı toplam işlem süresi ve ortalama hata oranına göre bu clusterda işlem yapmak için ideal rakamdır diyebiliriz.
  • Throughput yani op/s değerinin ise yine 271 thread açıldığında yükselip daha sonra yine bir düşüş yaşayarak tekrar yükseldiğini görebiliyoruz.
  • Clusterdaki write/read cevap verme oranının birbirine en yakın olduğu değer olduğu değerlerin 271 thread de görebiliyoruz. Bu da istekleri eşit seviyede kaynak ayırarak dengeli bir şekilde dağıtabildiğini ve performans etkisinin en efektif değerinin bu olduğunu gösteriyor.
  • 609 ve 913 değerlerinde ise read/write işlemlerinde read işlemlerinin biraz daha fazla zorlandığını ve ortalama gecikme sürelerinin uzadığını söyleyebiliriz.

Yukarıdaki grafik aslında genel bir özet niteliğinde olup thread counttaki artışın performansa etkisini özetler niteliktedir. Yani her zaman daha fazla kaynak ayırarak daha fazla performans beklemek yerine optimal konfigurasyon ve isterler doğrultusunda kaynağın belirlenmesi daha kabul görecek bir yaklaşımdır.

Saygılarımla,

Ahmet Demir

--

--