Cassandra3.11讀寫性能測試

 

(用於測試對比:AbutionGraph v.s Hbase

 

1. 測試目的

測試Cassandra集羣讀寫TPS的極值,確定Cassandra讀寫性能。

2. 測試環境

2.1 硬件信息

CPU 8核 Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
RAM 16G

2.2  軟件信息

JDK 1.8u151
Cassandra 3.11.1
cassandra-driver-core 3.3.2
OS CentOS Linux release 7.3.1611

2.3 集羣信息

集羣名稱 IP 類型
JCPT Test Cluster 10.112.68.184 節點1
10.112.68.185 節點2
10.112.68.186 節點3(種子節點)
10.112.68.189 節點4
10.112.68.191 節點5
10.112.68.192 節點6(種子節點)

 

 

2.4   主要配置信息

 

集羣配置爲單數據中心,測試時,數據庫keyspace的,採取SimpleStrategy策略

副本因子:3

分區器:Murmur3Partitioner

 

整個過程中通用設置如下

A.線程池設置:

setCoreConnectionsPerHost(HostDistance.LOCAL, 2)
setMaxConnectionsPerHost(HostDistance.LOCAL, 4) 

B.每次連接最大請求數量採取默認設置:本地端--1024;遠程端--256

C.本地線程池門限採用默認設置:32

 

 3. 測試過程

先測試單個客戶端的讀寫性能,再測試多個客戶端的TPS,測試出服務器讀寫操作的TPS瓶頸。

3.1  單客戶端測試讀寫性能及結果

在單個客戶端對集羣中的單表進行數據讀寫操作,測試讀寫性能。

具體過程:

  100個併發向同一張表處理100W數據;

  200個併發向同一張表處理100W數據;

  500個併發向同一張表處理100W數據;

  1000個併發向同一張表處理100W數據;

  1500個併發向同一張表處理100W數據;

(腳本測試所在機器:10.112.68.186)

 

測試結果:

l  表一 單數據庫100W數據性吞吐量性能測試

  100 200 500 1000 1500
insert 5472 5574 23429 30781 35024
select 18985 20323 35795 39088 38927
update 5766 5824 27805 34301 35867
delete 5446 5328 26581 34934 34635 

l  表二 單數據100W數據時間耗時時測試

  100 200 500 1000 1500
insert 182.734 179.406 42.683 32.488 28.566
select 52.672 49.206 27.937 25.583 25.702
update 173.439 171.717 25.779 29.154 27.895
delete 183.608 187.671 37.621 28.625 28.887

 

爲了直觀上看各項性能變化,將上述表格使用折線圖表示,如圖1、圖2所示: 

圖1 100W性能測試—TPS

 

圖2 100W性能測試—耗時(S)

3.2   多客戶端測試讀寫性能及結果

在多個客戶端分別對集羣中的同一張表進行數據讀寫操作,測試讀寫性能。

過程:

I. 2個客戶端進行分別處理100W數據,將各個客戶端TPS值相加,計算集羣TPS;

II. 3個客戶端進行分別處理100W數據, 將各個客戶端TPS值相加,計算集羣TPS;

III.依次增加客戶端數量,計算TPS達到瓶頸之後,停止增加;

IV. 線程數量爲500。

 

結果:

圖3 多客戶端性能測試—吞吐量(TPS)

 

集羣達到瓶頸之後開始拋出如下錯誤信息:

Cassandra timeout during write query at consistency LOCAL_ONE (1 replica were required but only 0 acknowledged the write)

Cassandra timeout during write query at consistency LOCAL_ONE (1 replica were required but only 0 acknowledged the write)

Cassandra timeout during write query at consistency LOCAL_ONE (1 replica were required but only 0 acknowledged the write)

                      ... ... 

4  測試結論

  ( 1 )   從單客戶端測試數據得出在併發大於500後個併發範圍內,各項操作TPS提升幅度較大,併發數量爲1500時TPS趨於穩定,測試線程數大於1500之後會出現響應超時錯誤。

  ( 2 )   當增加客戶端數量,集羣 TPS線性增加,集羣讀寫TPS可以達到6萬,之後趨於穩定,其中超過6個客戶端同時進行百萬級讀數據操作時達到瓶頸,寫操作在超過7個客戶端後同時進行百萬級寫數據操作時性能達到瓶頸,此時寫和修改操作TPS高於讀的TPS。可知:大量數據操作時寫的性能優於讀。

 

 

附件:

測試代碼 cassandra-test.rar

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章