诊断功能是用来帮助用户了解目前集群租户的负载及健康情况,并为用户提供了绑定执行计划的功能。默认展示最近一小时的租户性能数据,同时也提供了最近 2 小时,最近 1 天的选项,当然用户也可以自定义时间范围查看。

如何查看诊断信息

  1. 进入OceanBase集群列表控制台
  2. 找到目标集群,单击集群名,进入目标集群的管理页面。
  3. 在左边导航栏中点击诊断链接,右边展示区域即出现诊断入口。
  4. 在诊断入口选择需要诊断的目标租户,点击旁边的诊断按钮即可跳转至诊断详情页。

诊断功能模块组成

诊断详情页由三大块组成,分别为问题分类、会话数据、异常指标及 SQL。

  1. 诊断问题分类

    该模块的作用是便于用户快速知道当前租户存在的问题及问题所属类别。问题分类分为异常指标数和可疑 SQL 数,如果没有发现异常则提示‘未发现异常指标和可疑 SQL’,否则则用环型图标示异常指标数和可疑 SQL 数所占比例和具体数目。异常指标用绿色标示,可疑 SQL 用蓝色标示。

  2. 会话数据

    会话状态由三部分组成,分别为响应时间、请求量及会话数。其中响应时间包含TPS响应时间(TPS RT)和 QPS 响应时间(QPS RT),单位为 ms。请求量包含 tps 和 qps,会话数包含最大活跃会话数。数据采集频率为每 5s 采集一次。

  3. 异常指标:

    异常指标包含数据库比较重要的10 类 38 项,具体如下:

    cache(OB缓存命中率):

    • block_cache_hit_percent: BlockCache 缓存命中率
    • block_index_cache_hit_percent: IndexBlockCache 缓存命中率
    • bloom_filter_cache_hit_percent: BloomFilter 缓存命中率
    • location_cache_hit_percent: LocationCache 缓存命中率
    • row_cache_hit_percent: RowCache 缓存命中率

    clog(OB 事务日志操作响应时间):

    • clog_rpc_rt: 事务日志 RPC 响应时间
    • clog_write_rt: 事务日志写盘响应时间

    cpu:

    • cpu_usage_max: 每秒租户活跃线程数

    IO:

    • cpu_usage_max: 每秒租户活跃线程数
    • io_read_count: IO 读次数
    • io_read_rt: IO 读响应时间
    • io_write_count: IO 写次数
    • io_write_rt: IO 写响应时间

    network (网络):

    • rpc_packet_in: RPC 入包个数
    • rpc_packet_out: RPC 出包个数

    request(请求量):

    • active_sessions: 每秒活跃会话数
    • qps: 每秒查询次数
    • tps : 每秒 DML 次数
    • trans_commit_count : 每秒事务数

    request_rt(请求响应时间):

    • qps_rt : 查询平均响应时间
    • tps_rt: DML平均响应时间
    • trans_commit_rt: 事务平均响应时间

    sql_count(SQL请求详情):

    • request_enqueue_count: 队列等待次数
    • sql_delete_count : Delete次数
    • sql_distributed_count : 分布式请求次数
    • sql_insert_count : Insert次数
    • sql_update_count : Update次数
    • trans_rollback_count : 回滚次数
    • trans_timeout_count : 请求超时次数

    sql_row(SQL影响行数):

    • storage_delete_row_count : Delete影响行数
    • storage_dml_row_count : DML影响行数
    • storage_insert_row_count : Insert影响行数
    • storage_read_row_count : 查询返回行数
    • storage_update_row_count : Update影响行数

    sql_rt(SQL响应时间详情):

    • sql_delete_rt : Delete响应时间
    • sql_insert_rt : Insert响应时间
    • sql_queue_rt : 队列等待时间
    • sql_update_rt : Update响应时间
    • trans_rollback_rt : 回滚响应时间
  4. SQL

    SQL部分由两部分组成:可疑SQL和Top SQL。用户可根据数据库、节点、关键词及高级索引对SQL进行筛选(默认展示数据库、节点两个筛选条件,点击最右侧的展开按钮即可显示所有的筛选条件)。其中高级索引,支持比如数据库、执行次数、CPU时间(ms)等37项查询条件,同时还支持=、>=、<等8项匹配规则。

    • 可疑SQL:是指平台根据规则、算法筛选出的将会带来性能问题的SQL,常见的可疑项有:SQL执行计划变化(规则)、SQL性能下降(算法)。
    • Top SQL:是指从SQL流水中根据各个维度进行排序,并取出top的SQL,包含比较详细的SQL流水信息。

    可疑SQL展示列包含:序号、数据库、请求时间、执行次数、CPU时间和问题诊断。用户可根据序号、请求时间、执行次数、cpu时间对问题SQL进行排序。Top SQL的展示列是支持自定义的,用户点击管理列即可展示支持筛选的所有列,共34项。其中SQL类型支持过滤,比如只展示select语句其它类型数据不展示,其它条件支持排序。

    用户点击SQL序号可查看该SQL对应的SQL文本、SQL 诊断详情、SQL历史数据及物理执行计划。其中SQL历史数据包含SQL耗时趋势曲线图、cpu时间等指标的折线图及SQL执行历史的列表记录。

    在SQL详情页,用户点击物理执行计划即可查看到执行计划列表。执行计划列表包含执行计划生成时间、命中次数、平均执行时间、状态,用户可以选择绑定或取消绑定执行计划。用户也可以从表维度列出的所有索引选择绑定或取消绑定该索引(系统会默认提示一个智能推荐方案)。