【TiDB 使用环境】测试环境
【TiDB 版本】8.5.4
【部署方式】云上部署(腾讯云云)
开启DM的openapi 以后访问接口8261/api/v1/tasks?with_status=true响应需要2min左右有什么优化的方向嘛
查看 DM-master 日志,看有没有什么重要信息
检查 DM-master 资源:CPU、内存、网络是否被打满
首先是网络稳定性的监控,再就是主服务的日志详细报错方向
就是任务建多了3个开始这个接口就特别慢
就是任务建多了从3个开始这个接口就特别慢
?with_status=true
这个去掉呢?
可以试试去掉看看时间有没有变化
不加 with_status:/api/v1/tasks 秒返回,大概率瓶颈在状态聚合
加 with_status是2 分钟 那么每个任务要查 DM-worker 实时状态
这类 with_status=true 的接口通常用于监控或调试,不建议被高频、大批量调用。如果是为了采集监控数据,建议适当降低轮询频率。
去掉就很快了
主要是官方的哪个UI界面的列表就调用了这个接口任务稍微多一点就卡在那里了
去掉很快,结果满足你么你要求么?满足的话就去掉吧。
接口增加分页,禁止全量查询;
Redis 缓存任务状态,接口优先读缓存;
精简with_status返回字段,减少子任务实时遍历;
优化 DM 状态轮询与内存索引。
试试 去掉 with_status=true 参数
调用接口时移除with_status=true;监控场景降低轮询频率
给 DM 内部存储任务状态的元数据表,针对task_status字段建立单列索引,避免全表扫描拉取状态数据。