上个月底,期待已外的TiDB 3.0GA 终于发布了,根据官方介绍,在稳定性,性能都有显著改善,特别是在性能上与2.1相比Sysbench 性能提升有 1.5 倍,为了查验这一说法,新搭建了一套测试环境进行了验证,同时与去年引入tidb时做的测试进行了对比。
- 原材料
主机配置情况:
主机
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)
测试场景:
- 测试脚本为oltp_read_write,oltp_read_only,oltp_point_select ,oltp_update_index ,oltp_update_non_index ,oltp_insert oltp_delete 6个场景
- 数据初始化1千万(主要是为了与之前测试的2.0版本对比)
- 并发数最小为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版本相比,对于节点内可扩展性,内并发处理能力都有很大的提升,各节点延时下降明显,资源利用率大增加,同等压力情况下性能与稳定性都提升显著。