yg_2024
(yangguang)
1
我们现有的老生产环境中,部署的是 V5.4 版本的 TiDB 集群,该集群已经稳定运行了三年多时间。近期,由于需要更换服务器,我们在新环境中部署了 V8.5.3 版本的 TiDB。考虑到业务切换至新集群后可能会出现性能下降的情况,届时需要对大量SQL语句进行执行计划绑定操作。
基于此,想了解一下,有没有办法能够将老集群内的所有 SQL 语句在新集群内进行批量回放(类似Oracle的SPA)?通过这种方式,提前找出那些在新集群中性能下降的 SQL 语句,并提前做好执行计划绑定工作,以保障业务切换后的平稳运行。
另外补充说明一下:
1、目前业务连接采用的是 Haproxy,尚未使用 Tiproxy。
2、查阅官方文档中关于 PLAN REPLAYER 的用法后,发现其回放功能仅支持逐条回放,无法批量对比出性能下降的 SQL 语句,不知是否有其他可行方案?
旧版本同步数据到新版本。。1、然后把一些读流量 路由到新版本。2、把一些慢SQL分布在老版本,新版本上面都执行一下。对比一下执行时间。
Tiproxy 这个毕竟是内部工具,有一些回放的参数可以调整,应该比外部工具要好用
Tfzxc
4
那不是还要在两个集群中间搞个数据同步,这是不是搞太复杂了
sd4544763
(Ti D Ber Oj Ng Muip)
5
是不是可以考虑通过General Log抓取全部SQL,然后用工具批量绑定
Kongdom
(Kongdom)
6
没有做过类似评估,都是新版本压测,然后优化,最后切换上线。
没做过前置性能评估,
新版本很多新特性,看自己业务是否用到,或者抽取生产AP的SQL,放到研发环境,对比升级前后性能对比。
当然如果有架构能搞定流量收集问题,也可以重放,类似美团那边流量回放。
yg_2024
(yangguang)
8
这篇文档里提到了3个工具,只是没有详细介绍具体的使用方法
-
TiDBA
通过对比升级前后版本的参数,帮助你快速识别出新版本参数的变化。
Pt-upgrade:用于mysql/maria/aurora等很多商业客户的升级中,经过大量实践确定是可用且可靠的。percona consulting团队的主要工具。该工具使用 slow query log 在升级的源集群(旧版本)和目标集群(新版本)上同步回放,以测试 SQL 兼容性。
-
Plan Change Capturer(PCC)
通过检测不同版本 TiDB 的执行计划变化,帮助你识别性能退步的 SQL,在升级前识别执行计划变化带来的风险。
-
Workload-sim
通过使用 Database Replay 在测试系统上运行真实的工作负载,帮助你全面评估升级的效果
1 个赞
system
(system)
关闭
9
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。