OceanBase中除了OCP还有哪些工具可以用来排查性能问题?比如CPU高的SQL,锁阻塞,长事务等问题?
用的比较多的是obdiag吧
SQL Diagnoser 工具
该工具用于 SQL 性能诊断和分析,支持 SQL Advisor 和 SQL Review 功能,能帮助识别可疑 SQL 并提供优化建议。它通过查询内部性能视图如 gv$sql_audit 和 gv$plan_cache_plan_stat 来分析 SQL 执行中的问题。
obdiag 工具
这是一款适用于 OceanBase 的黑屏诊断工具,可以高效收集和分析故障场景下分散在各个节点的信息,适用于排查复杂问题。
SQL Audit 视图
sql_audit 是一个重要的性能视图,记录了 SQL 的执行详情,如执行时间、等待时间、排队时间、相关 Block 读取信息等,可用于分析 SQL 的性能瓶颈。例如,通过查看 retry 次数和 queue time 可判断是否存在锁冲突或抖动问题。
Full Link Trace(全链路追踪)
全链路追踪功能可监控从 Client 到 OBProxy 再到 OBServer 的整个链路耗时,有助于快速定位性能瓶颈。
性能诊断工具(如 EXPLAIN、Performance Schema)
这些工具可用于分析 SQL 的执行计划、索引使用情况、CPU 使用率和磁盘 I/O 等,辅助进行性能调优。
OAS(OceanBase Audit System)
OAS 提供深入的安全审计和诊断分析功能,可用于排查 SQL 执行中的异常行为。
dooba 脚本
这是一个基于 Python 的运维脚本,可用于实时展示租户 SQL 的 QPS 和平均延迟(RT),帮助监控 SQL 性能。
OceanBase 除了 OCP 之外,还提供了一些其他的工具来帮助排查性能问题,例如 CPU 高的 SQL,锁阻塞,长事务等问题。主要的工具包括:
-
OBDiag:
- OBDiag 集成了 Oceanbase Diagnostic Tool,该工具包含了对 OceanBase 数据库日志、SQL Audit 以及 OceanBase 数据库进程堆栈等信息的扫描收集功能,支持通过 obd 实现诊断信息的一键采集。
- 详情请参考 obdiag GitHub 仓库。
-
OBProxy 日志:
- 通过 OBProxy 的日志可以获取客户端与 OBServer 之间的交互信息,帮助分析 SQL 语句的执行情况。
-
SQL Audit:
- OceanBase 数据库提供了 sql_audit 表,可以通过分析该表来诊断 SQL 语句的性能问题。
-
Top 命令和 Perf 命令:
- 通过 top 命令可以实时查看 ODP 的 CPU 使用情况,如果 CPU 使用超过 OceanBase 数据库,其性能可能不正常,需进一步分析。
- 通过 perf 命令可以查看热点函数和硬件指标,帮助分析 CPU 高的问题。
-
OBServer 系统日志:
- 通过分析 OBServer 的系统日志,可以识别出阻塞态和运行态的问题,进一步定位性能瓶颈。
-
OBAgent:
- OBAgent 是 OceanBase 数据库监控采集框架,支持推、拉两种数据采集模式,可以满足不同的应用场景,帮助收集和监控各种性能指标。
更多信息请查看:
感谢回复,学习到了
收藏了
经验分享
期待
赞一个!