OceanBase有哪些可以排查性能问题的工具?

OceanBase中除了OCP还有哪些工具可以用来排查性能问题?比如CPU高的SQL,锁阻塞,长事务等问题?

11 个赞

用的比较多的是obdiag吧

1 个赞

‌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 性能。

1 个赞

@论坛小助手

1 个赞

OceanBase 除了 OCP 之外,还提供了一些其他的工具来帮助排查性能问题,例如 CPU 高的 SQL,锁阻塞,长事务等问题。主要的工具包括:

  1. OBDiag

    • OBDiag 集成了 Oceanbase Diagnostic Tool,该工具包含了对 OceanBase 数据库日志、SQL Audit 以及 OceanBase 数据库进程堆栈等信息的扫描收集功能,支持通过 obd 实现诊断信息的一键采集。
    • 详情请参考 obdiag GitHub 仓库
  2. OBProxy 日志

    • 通过 OBProxy 的日志可以获取客户端与 OBServer 之间的交互信息,帮助分析 SQL 语句的执行情况。
  3. SQL Audit

    • OceanBase 数据库提供了 sql_audit 表,可以通过分析该表来诊断 SQL 语句的性能问题。
  4. Top 命令和 Perf 命令

    • 通过 top 命令可以实时查看 ODP 的 CPU 使用情况,如果 CPU 使用超过 OceanBase 数据库,其性能可能不正常,需进一步分析。
    • 通过 perf 命令可以查看热点函数和硬件指标,帮助分析 CPU 高的问题。
  5. OBServer 系统日志

    • 通过分析 OBServer 的系统日志,可以识别出阻塞态和运行态的问题,进一步定位性能瓶颈。
  6. OBAgent

    • OBAgent 是 OceanBase 数据库监控采集框架,支持推、拉两种数据采集模式,可以满足不同的应用场景,帮助收集和监控各种性能指标。

更多信息请查看:

  1. 分析诊断&决策流程
  2. SQL 性能问题的典型场景和排查思路
  3. ODP 性能分析
  4. 诊断工具命令组
  5. 信息采集概述
2 个赞

感谢回复,学习到了

收藏了

经验分享

期待

赞一个!