托马斯滑板鞋
(托马斯滑板鞋)
1
Tidb:7.1.1
MySQL:percona-server-8.0.33-25
背景:
探索在低配主机环境中用tidb替代MySQL MGR单主集群可行性方案,加速业务sql并提高主机资源利用率
一、测试环境:
用途 |
云主机型号 |
CPU |
内存 |
存储空间 |
I/O性能 |
iops |
价格 |
压测主机 |
ecs.c7.8xlarge |
32C |
32G |
200G |
46MB/s |
11000 |
3351.13元/月 |
数据库主机 |
ecs.c7.4xlarge |
16C |
32G |
1000G |
440MB/s |
50000 |
1802.78元/月 |
二、部署架构:
数据库类型 |
架构 |
总价格 |
TiDB |
三节点,每个节点上 1 TIDB + 1 PD + 1 TIKV |
5,408.34元/月 |
MySQL |
两个节点,主从,增强半同步 |
3,605.56元/月 |
三、部分参数调整:
1、主机关掉透明大页
2、压测主机上部署haproxy,指向三个tidb server
2、tidb server 和 tikv 日志级别更改为error
3、innodb buffer给到24G
四、tpcc测试结果
五、sysbench测试结果
oltp_select_point(点查)
oltp_read_write(读写)
六、其他
1、在8c16G上压测的性能差距差不多
2、在没做任何资源限制的前提下,tidb本身没有OOM
3、测试过程中,Tidb三个节点能均衡地将cpu idle压至个位数;MySQL则存在大量IO wait
2 个赞
大佬,tpcc测试1000仓生成数据大概要多久?为什么我几十仓生成差不多半个小时
1 个赞
托马斯滑板鞋
(托马斯滑板鞋)
4
日志丢了,反正比MySQL慢,我一般都是丢后台灌数据
1 个赞
托马斯滑板鞋
(托马斯滑板鞋)
11
因为单主mgr资源利用率不高,看看tidb能否在低配集群上替代,提升资源利用率;
另外公开的tpcc模型没法在mgr上测(缺主键),所以只能用主从半同步模拟对比;
业务场景的测试涉及敏感数据就不放出来了
1 个赞
托马斯滑板鞋
(托马斯滑板鞋)
13
在实际压测中,tidb的三台主机资源利用率均被压到很低,对比MySQL MGR单主好很多
1 个赞
楼主好,我在使用tiup bench tpcc压测单机mysql时,tiup bench tpcc check检查数据一致性非常耗时,想问下你这边是否有类似情况,或者是否能给出一些优化建议
详细信息如下:
数据库主机配置 16c 128g内存 1T高性能磁盘,关闭了虚拟内存
mysql是在ubuntu20.04使用apt-get install mysql-server进行安装的mysql8.0,配置优化只是在/etc/mysql/mysql.conf.d/mysqld.cnf增加了
innodb_buffer_pool_size = 96G
innodb_write_io_threads = 16
innodb_read_io_threads = 16
这三项。
压测机和mysql主机配置相同,使用16线程压了8个warehouses
tiup bench tpcc check --warehouses 8 --threads 16
问题过程中,数据库cpu在800%左右,相对16核cpu,占比50%;内存和io都很低。压测机的cpu,内存和io也都很低,内网压测,网络也不是瓶颈,但是check时长在1小时左右,感觉很不正常
以上,还请帮看下是怎么回事,感谢感谢
托马斯滑板鞋
(托马斯滑板鞋)
16
比tidb慢,没找到源码,我怀疑check阶段在做多表关联查询(mysql这块性能很差),期待有原厂大佬帮忙解答下
P.S:建议直接通过日志判断数据的一致性
楼住你好,我用了3台服务器部署的tidb,和你一样每个部署了kv,db,pd. 然后java包只访问了其中一个节点的db,配置是用的三节点混布文章上的配置,但是现在java包的接口处理的并发很低,2,3个接口为一批的响应,是因为我没部署HAProxy吗,还是说我配置少配置了什么
TiDB在大规模数据的场景下(单表五千万行以上)比较有优势,而且做性能测试要把各个实例节点分开部署,否则会有很大的相互干扰,影响结果的准确性。
数据量规模不大的情况下,mysql在性能和成本核算上优势更大。
楼主如果是打算对TiDB做完整的性能测试,还有很大的优化空间。