暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

昆仑数据库存储节点与社区版mysql的性能对比

数据库开发者 2021-04-15
416

这几天我对比了mysql的最新官方版本percona-mysql-8.0.22 kunlun-percona-mysql-8.0.18的性能发现kunlun-percona-mysql的性能仍然全方位大大领先于percona-mysql-8.0.22要知道在20206月我已经做过percona-mysql-8.0.18kunlun-percona-mysql-8.0.18的性能对比当时就是kunlun-percona-mysql的性能大大领先现在半年多过去了mysql最新官方版本的性能仍然没有显著改善

 

根据过往的经验mysql的性能问题是mysql官方版本造成的而不是percona造成的如果使用mysql-8.0.22由于没有线程池连接数达到500特别是1000时性能已经惨不忍睹另外截止本文撰写时20212月初),mysql最新的版本mysql-8.0.23还没有percona版本因此使用percona-mysql-8.0.22作为官方版本做性能对比测试

测试配置

InnoDB表文件总size: 20GB, 20 个表, 每个表含有4百万行. innodb buffer pool size: 16GBsysbench参数配置详见附录1.

update_non_index_xa测例全部使用两阶段提交的XA事务, oltp_xa测例使用95%XA事务和5%的普通事务,在这些XA事务中20%使用一阶段提交,80%使用两阶段提交。

percona-mysql-8.0.22和kunlun-percona-mysql-8.0.18的数据库实例进程都使用完全相同的配置参数设置并且都使用了jemalloc库并且都不挂备机而且二者的程序文件都是在Ubuntu-20.04build的release版本

 

sysbench程序与mysql服务器运行在同一台机器上以便最小化网络开销根据观察纯写入测试并没有用尽CPU所以这样的部署不影响测试结果

 

用于测试的服务器有32GB DDR4 3200内存CPU是8个物理核心16个逻辑核心的AMDRyzen 7 3700X存储使用2NVME SSDinnodb redo日志文件以及数据文件存储在一个存储设备中binlog文件存储在另一个存储设备中

 

测试结果和对比

结果表格说明

NO. conns是指测例使用的sysbench连接数量minavgmax95%分别是指最小延时平均延时最大延时95%的语句的延时上限 r/w qps是指平均每秒执行的读写语句selectupdatedeleteinsert语句数量tps是指平均每秒执行的事务数量

结果详情

 


结果分析

只使用500个连接做分析因为1000个连接的情况下延时普遍都是同版本同测例500个连接的约2qps并没有大的提升说明500个连接时系统资源已经充分利用了1000个连接的大量请求仅仅是排队了更久而已反而不利于说明问题本分析中使用的延时是95%语句的延时上限这个指标

 

测试结果中的QPS的不同并不是因为执行DMLinsert/delete/update/select)语句本身耗时不同同类型的DML语句耗时基本相同并且运行逻辑完全相同),而是因为执行事务提交的耗时不同QPS的计算方法是把一个sysbench测例执行的总的语句数量除以该sysbench测例运行的总秒数得出的因而事务提交的时耗不同就导致了QPS结果的不同TPS是用QPS除以该测例里面的DML语句数量得出的因此我们只考虑QPS即可

 

1. XA纯写入测例update_non_indexoltppercona-mysql-8.0.22QPSTPS只有kunlun-percona-mysql-8.0.1864%53%而且延时比kunlun-percona-mysql42%  70%

2. XA纯写入测例update_non_index_xa  oltp_xa percona-mysql-8.0.22QPSTPS只有kunlun-percona-mysql-8.0.1835%42%而延时达到了kunlun-percona-mysql2.77

3. 对于同一个纯写入测例update_non_indexoltppercona-mysql-8.0.22XA事务的QPS只有非XA事务QPS34%(update_non_index) 59%oltp)而延时却分别是非XA事务的2.5倍和1.7

4. 对于同一个纯写入测例update_non_indexoltpkunlun-percona-mysqlXA事务的QPS达到非XA事务QPS60%(update_non_index) 72%oltp)延时也只有非XA事务的1.33倍和1.02

5. 对于读写混合测试oltp read&writekunlun-percona-mysqlXA事务的QPS达到非XA事务QPS95%以上延时也几乎相同也就是说两者性能几乎完全相同

6. 对于读写混合测试oltp read&writepercona-mysql-8.0.22XA事务的QPS只有非XA事务QPS2/3延时是非XA事务的1.5

7. 对于读写混合的XA测试也就是oltp_xa read&writepercona-mysql-8.0.22QPSTPS只有kunlun-percona-mysql-8.0.1845%而延时达到了kunlun-percona-mysql2.2

8. 对于读写混合的非XA测试也就是oltp read&writepercona-mysql-8.0.22QPSTPS只有kunlun-percona-mysql-8.0.1861%而延时是kunlun-percona-mysql1.44

附录

1. sysbench参数配置./sysbench --max-time=300 --test=tests/db/update_non_index_xa.lua  --mysql-host=192.168.0.105  --mysql-port=$port --mysql-db=test --oltp_tables_count=20 --oltp-table-size=4000000 --oltp-write-only=on --oltp-read-only=off --init-rng=on --num-threads=500  --max-requests=0 --oltp-dist-type=uniform --mysql-user='abc' --mysql-password='abc'  --oltp_auto_inc=off --db-driver=mysql --oltp_use_xa_pct=100 --oltp_use_xa_2pc_pct=100  --report-interval=3

 


文章转载自数据库开发者,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论