mysql战队表_【TiDB 高性能比赛队伍打卡】 Week 2020/10/26~2020/11/1 队伍 v587

参赛信息

队伍: v587

目标: 优化 ycsb workloade

本周汇报

本周主要工作

ycsb 压力测试,调整参数并比对不同场景下的性能区别

学习高性能课程相关的内容 (planner 和 coprocessor 为主),阅读 TiDB 源码博客,熟悉 query 处理流程

压力测试

本周通过脚本压力测试了 TiDB,跑 60 遍指定的 workloade,并用 gpof 分析 CPU 消耗。使用的脚本命令为:

i=60; while [ "$i" -ne "0" ]; do ./go-ycsb run mysql -P ./workloads/workloade -p recordcount=5000000 -p mysql.host=127.0.0.1 -p mysql.port=4000 -p mysql.user=root -p mysql.db=test done && i=$(($i -1 )); done;

火焰图如下:

12915ab893c7ec083925eaa1942dd9a2.png

2f5fb6189846e5335c01faf7e8acdb37.png

通过观察火焰图,我们发现,copIteratorWorker 占用了很大一部分时间,反推可以得到:

计算下推给 TiKV 后,等待结果返回时间较长

TiDB 在对查询优化过程中,采取了不是最优的计划,导致 worker 消耗时间长

从开发的反馈来看,我们现在的解释和可能的优化方向是比较正确的。在大家的讨论中提到了 workloade 在不同测试场景下的性能可能有区别,所以下来进行了比对测试。

我们分别使用了 1,2,4,8,16,32条线程:

2c7732bcd466603abddee2e7d3c15c86.png 从这行图里可以看出测试的数据集和查询有不稳定性,需要多进行几轮测试来保持稳定。

小结

本周主要进行了比较系统的压力测试,希望可以找到优化方向。

遇到的问题

无法很好定位能够触发 planner 得出非优化 plan 的具体场景(数据库大小,测试线程etc),导致无法根据代码层面提出解决方案。

下一步规划

根据目前已经定位的组件 copIteratorWorker,跟踪调试 workloade 的查询语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值