TiDB v2.0 与v3.0 性能对比

上个月底,期待已外的TiDB 3.0GA 终于发布了,根据官方介绍,在稳定性,性能都有显著改善,特别是在性能上与2.1相比Sysbench 性能提升有 1.5 倍,为了查验这一说法,新搭建了一套测试环境进行了验证,同时与去年引入tidb时做的测试进行了对比。

  1. 原材料

主机配置情况:

主机

cpu(core)

mem(G)

disk

PC1

24

376

SSD

PC2

24

376

SSD

PC3

24

376

SSD

TiDB 版本:v3.0GA版本

TiDB组件分布:

组件

节点数

容量

tidb

3

100G/节点

pd

3

100G/节点

kv

3

800G/节点

测试工具:Systench 版本:1.0.12 (using bundled LuaJIT 2.1.0-beta2)

测试场景:

  1. 测试脚本为oltp_read_write,oltp_read_only,oltp_point_select ,oltp_update_index ,oltp_update_non_index ,oltp_insert oltp_delete 6个场景
  2. 数据初始化1千万(主要是为了与之前测试的2.0版本对比)
  3. 并发数最小为10,最大为1200,每次并发数增加20

测试架构:

1.各场景测试对比

通过以上对数据数据可以看出,在每个测试用例下v3.0的性能都要优于v2.0,特别是在在read write场景下性能高出了4倍,而其他的场景下也翻了一倍,性能提升幅度很大。
我们知道 tikv副本间是由于raft日志同步实现的,完成这一功能的主要是进程 Raftstore与Apply,而在2.0时代都是单线程,在3.0版本则升级成了多线程。由此看,3.0版本性能提升就见怪不怪了,那么在稳定性又如何呢,可以接着继续看下面的数据。

各场景延迟

从以上各个测试用户的对比数据看,在3.0版本下,
1. 延迟随着并发数的增加平稳的增加而在2.0版本中,除了在delete场景下稍平移稳些,其他延迟抖动很大
2. 3.0版本延迟与2.0相比少20%~50%
4 小结
Tidb 3.0与v2.0版本相比,对于节点内可扩展性,内并发处理能力都有很大的提升,各节点延时下降明显,资源利用率大增加,同等压力情况下性能与稳定性都提升显著。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java将前端的json数组字符串转换为列表

记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang

Java日期时间API系列31

  时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总毫秒数,是所有时间的基础,其他时间可以通过时间戳转换得到。Java中本来已经有相关获取时间戳的方法,Java8后增加新的类Instant等专用于处理时间戳问题。 1获取时间戳的方法和性能对比1.1获取时间戳方法Java8以前