KunlunBase 0.9.1版本Sysbench性能测试报告

2022-05-11 00:00:00 数据 集群 节点 测试 配置

概述

kunlun-0.9.1的性能测试主要使用Sysbench进行,分为oltp测试和olap测试两大部分。

  • 对于oltp测试,主要包含4种操作:read&write、write only、update_non_index、update_index,测试目的主要是检查新推出的强一致性模式(rbr),对比MySQL的官方强一致性方案(mgr)性能有多大提升。由于网络不是瓶颈,主要在内网的机器中进行。

  • 对于olap测试,则主要包含: point select、simple range select、sum range select, order by range select、distinct range select,主要在AWS EC2的机器上运行,因为某些select操作对网络要求很高,少量操作就能用满千兆网,需要万兆网才能测出好性能。另一目的则是衡量AWS上不同配置的性能价格比。

oltp测试

基本配置情况

本测试分为2个部分:

  • rbr: 使用RBR复制模式构建的集群,此为企业版独有。

  • mgr: 使用MGR复制模式构建的集群,此为开源版和企业版都有。

客户端: 测试客户端使用一台AMD Ryzen 9 5950X + 64GB内存的机器,其上部署sysbench以及HAProxy, sysbench将请求发往HAProxy, HAProxy将请求发往三个计算节点。

数据:总共为18个表,每个表1000万记录,总数据量为36G,分到3个Shard里面,数据在shard间均匀分布,每个shard含有6个表,12G。

集群配置:集群使用三台机器,且做对等部署, 每台机器上部署一个元数据节点,一个计算节点, 一个shard的primary和另外两个shards的replicas,三台机器配置为:

  • § AMD Ryzen 9 5950X + 64G + 1TB SSD

  • § AMD Ryzen 9 5950X + 128GB + 1TB SSD

  • § AMD Ryzen 9 5950X + 128GB + 1TB SSD

缓存命中率: 每个数据节点innodb_buffer_pool_size为12G,meta node的innodb_buffer_pool_size为512MB,缓存命中,计算节点使用默认的内存配置。

测试情况:

  • 测试线程为:300 400 500 600 700 800 900 1000。

  • 总共测试四种操作:read&write、write only、update_non_index、update_index。

  • 每个线程下每个操作运行时间为5分钟。

测试结果

总体结果:

  • rbr为0.9.1版本新推出的,针对mgr复制模式的改进模式,从测试结果看,性能提升显著。

  • 对于read&write:中低(<=600)线程下,mgr和rbr表现差不多,线程数>=700时, rbr对比mgr产生较大性能差,高到接近3倍。

  • 对于write only:低(<=400)线程下, rbr约为mgr的1.5倍,中高线程下,rbr为mgr的2倍以上。

  • 对于update_non_index和update_index:rbr平均超过mgr的2倍。

read&write

Sysbench命令:

./sysbench --max-time=300 --test=tests/db/oltp.lua --pgsql-host=$host --pgsql-port=$port --pgsql-db=$dbname--oltp_tables_count=$tblcnt --oltp-table-size=$tblsize --oltp-write-only=off --oltp-read-only=off--init-rng=on --num-threads=$thrcnt --max-requests= --oltp-dist-type=uniform --pgsql-user=$user--pgsql-password=$pass --oltp_auto_inc=off --db-driver=pgsql --oltp_use_xa_pct= --oltp_use_xa_2pc_pct=80--report-interval=10 run

相关文章