OceanBase诊断调优实践 李超 OceanBase高级技术专家 目录 Contents 01OceanBase诊断调优的挑战 02OAS 全称OceanBaseAutonomyService,OceanBase的企业级诊断调优产品 03obdiag 全称OceanBaseDiagnosticTool,轻量级、开源的OceanBase黑屏敏捷诊断工具 01 OceanBase诊断调优的挑战 OceanBase诊断调优的挑战 集中式数据库系统 OBServer p1p2p3 OceanBase OBServer p1p2p3 OBServer p1p2p3 obproxy •数据库是应用的基础,需要持续对数据库进行诊断调优,保障应用稳定发展。 VS •请求链路变长,需要更细粒度 •监控指标密度变大,需要更高性能 02OAS OAS是OceanBase的诊断产品,可以灵活适配OceanBase不同的运维方式,提供统一的数据库自治策略,是用户安全稳定使用OceanBase的全时段智能管家。 全景监控 提供完备的诊断基础 诊断决策融入专家经验沉淀 提供多种产品形态支持 OAS是OceanBase的诊断产品,可以灵活适配OceanBase不同的运维方式,提供统一的数据库自治策略,是用户安全稳定使用OceanBase的全时段智能管家。 自治中心 一键诊断: 对集群健康度 进行全面巡检分析,发现异常 OAS是OceanBase的诊断产品,可以灵活适配OceanBase不同的运维方式,提供统一的数据库自治策略,是用户安全稳定使用OceanBase的全时段智能管家。 自治中心 异常事件: 基于异常事件进行根因分析,快速进行问题定位 覆盖常见故障的分析路径 OAS是OceanBase的诊断产品,可以灵活适配OceanBase不同的运维方式,提供统一的数据库自治策略,是用户安全稳定使用OceanBase的全时段智能管家。 实时诊断 SQL诊断: 多维度的SQL问题分析定位,调优紧急一条龙。分布式采集,集中式分析 TopSQL •全量SQL的分析统计,帮助用户定位资源消耗高的SQL SlowSQL •对SQL的单次慢执行的进行采样分析,协助排查性能问题 可疑SQL •基于专家经验捕捉系统中存在的问题SQL,提供优化分析 高危SQL •基于规则识别出可能对系统性能、安全、数据造成危害的SQL 新增SQL •发现系统中新增业务SQL,帮助识别负载突变的来源 OAS是OceanBase的诊断产品,可以灵活适配OceanBase不同的运维方式,提供统一的数据库自治策略,是用户安全稳定使用OceanBase的全时段智能管家。 实时诊断 会话管理: 了解集群负载;分析定位业务逻辑问题;应急恢复杀手锏 OAS是OceanBase的诊断产品,可以灵活适配OceanBase不同的运维方式,提供统一的数据库自治策略,是用户安全稳定使用OceanBase的全时段智能管家。 优化中心 优化中心: 对集群/租户进行全量SQL结构分析,给出优化建议 优化历史可跟踪 OAS是OceanBase的诊断产品,可以灵活适配OceanBase不同的运维方式,提供统一的数据库自治策略,是用户安全稳定使用OceanBase的全时段智能管家。 容量中心 容量中心: 对资源进行下钻分析,给出容量风险和容量预测 OAS是OceanBase的诊断产品,可以灵活适配OceanBase不同的运维方式,提供统一的数据库自治策略,是用户安全稳定使用OceanBase的全时段智能管家。 安全中心 安全中心: 对集群/租户配置进行安全检查,支持SQL审计 发现异常确认异常范围 全面的异常检测覆盖从整体到局部的故障范围确认 12 6 复盘 分析总结,增加预防措施 故障发生如何处理? 3异常分析 基于监控、SQL、日志等信息的初步诊断 5 4 根因定位应急处理 分享定位问题根源,并进行处理问题隔离,避免影响其他业务 基于监控的下钻分析 监控分析 基于监控一键发起SQL诊断 根据规则检测出SQL的异常点 根据规则检测🎧SQL的异常点 结合历史趋势,判断SQL的变化点 根据规则检测🎧SQL的异常点 结合历史趋势,判断SQL的变化点 执行SQL的应急处理 会话诊断vsSQL诊断 SQL优化 根据优化建议来彻底解决SQL慢的问题 执行优化建议接触业务限流 SQL优化 根据优化建议来彻底解决SQL慢的问题 执行优化建议接触业务限流 如何更快获取诊断根因 监控分析: •主机CPU使用率水位是否正常 •租户SQL队列等待是否有抖动发生 如何进行事前防范-巡检 一些常见的SQL问题 问题判断逻辑 表扫描&物理读行数特别大 逻辑读,物理读行数远远大于平均返回行数或者影晌行数 结合表定义是否存在隐式列转换、或者索引在左侧计算 访问分区数过多,分布式调度耗时高,需要SQL改写或者使用全局素引 大小账号或者导数场景,导致存在多个执行计划 SQL问题描述 SQL分析: •慢SQL •可疑SQL •TOPSQL:按照CPU占比或者执行次数进行排序 业务特性 •定期跑批 •大促前评估容量 •新业务上线 无可用索引,对大表进行全表扫描 走了索引,但索引不优,只有单列索引SQL写法问题导致不能走上索引 基于负载 索引调优:覆盖索引 执行计划调优:选择更忧计划,润整连接顺序、连接算法SQL改写:业务进行SQL改写 点查、点写分区表不指定分区键执行计划不稳定 如何快捷进行巡检 对集群健康度进行全面巡检分析,发现异常和待优化点 03obdiag OceanBase用户画像 企业版vs社区版 7 学习、研究、测试 具有探索精神 更多平台集成 规模化管理 OAS 1 4 6 8 9 用户群体广泛 社区用户深度参与 付费用户 功能完备 稳定性和可靠性依赖 3 2VS 10 安全、合规 5 obdiag Obdiag简介 OceanBase敏捷诊断工具(OceanBaseDiagnosticTool,简称obdiag)是一款源代码开源敏捷黑屏诊断工具,可以对OceanBase集群进行一键集群巡检、一键分析以及一键诊断信息收集。 极致轻量 一款30M大小的一键部署,开箱即用黑屏工具 完全开源 源代码开源 Before 高度可扩展 插件化的场景高度扩展性 一键操作 支持30+巡检项 支持20+场景信息收集支持日志、全链路分析 After 敏捷诊断工具应用场景 一键分析 一键自查集群问题点 巡检 一键日志分析 缩小排查范围 一键根因分析 疑难杂症一键收集 自助分析 Sysbench场景的巡检 一键全链路诊断结果样例 敏捷诊断工具SIG 敏捷诊断工具obdiagSIG(SpecialInterestGroup[特别兴趣小组]正式成立了,欢迎广大开发者一起参与项目共建, 让诊断OceanBase数据库变得更简单。 github项目地址 obdiagSIG语雀营地 谢谢 谢谢 谢谢