Cassandra3.11读写性能测试

 

(用于测试对比:AbutionGraph v.s Hbase

 

1. 测试目的

测试Cassandra集群读写TPS的极值,确定Cassandra读写性能。

2. 测试环境

2.1 硬件信息

CPU8核 Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
RAM16G

2.2  软件信息

JDK1.8u151
Cassandra3.11.1
cassandra-driver-core3.3.2
OSCentOS Linux release 7.3.1611

2.3 集群信息

集群名称IP类型
JCPT Test Cluster10.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数据性吞吐量性能测试

 10020050010001500
insert54725574234293078135024
select1898520323357953908838927
update57665824278053430135867
delete54465328265813493434635 

l  表二 单数据100W数据时间耗时时测试

 10020050010001500
insert182.734179.40642.68332.48828.566
select52.67249.20627.93725.58325.702
update173.439171.71725.77929.15427.895
delete183.608187.67137.62128.62528.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

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页