OCP 性能监控

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】OCP
【 使用版本 】社区版 4.4.2
【问题描述】清晰明确描述问题


第二张图片是下面对应的各个指标的最大值 平均值 和当前值

我疑惑的是
这个响应时间监控是不是有问题,99-all 95-all 的最大值 在14分钟和 6分钟,但是all 的最大值17秒,select 最大值19秒。 平均值那一列也是,99-all 95-all 都比all 和 select 大,不应该all 是全部的sql 吗,所以all 的最大值不应该比99-all 95-all 大或者相等吗,而且这差的太多了,这个帮忙看下是什么原因,

不是监控算错,而是 all99-all 根本不是同一类指标。

  • 看整体负载:看 all / select 含义:平均响应时间(总耗时 ÷ 次数,来自 sysstat)
  • 看尾部体验:看 99-all / 95-all 含义:P99 / P95 分位数(来自 v$ob_query_response_time_histogram

为何能差这么多

平均会被大量快 SQL 稀释;P99 看的是长尾。例如 99% 很快、1% 跑十几分钟时,平均可能只有几秒~十几秒,P99 仍可到分钟级。当前值其实是自洽的:99-all ≈ 9 ms > all ≈ 574 μs。

不是,我疑惑的是最大值那一列,不是平均值,平均值会被稀释这个是肯定的,但是最大值不会被稀释的,你看我的帖子里的描述,99-all 和 95-all 的最大值远远大于all 的最大值

你看我的信息 all99-all 根本不是同一类指标 怎么对比 我也解释了 all和99-all的含义

我理解是这样的,比如一个小时内执行了500条sql ,我现在看这一个小时的监控里的响应时间这个指标,不管是99-all 95-all 还是all 应该都是用的这500条sql 的响应时间,虽然p99 p95 是尾部体验,但应该也是从这500条sql 中统计出来的,现在99-all 的最大值时14.66min ,那说明有1%的sql 执行时间是超过这个时间的,那这时 all 里的最大时间 不也应该超过或者等于 14.66min 吗

那按照你这样理解 那99-all和all还有什么区别么?直接一个指标就可以了 还要区分指标呢

举例:某采样周期 10000 条 SQL,9990 条 1 ms,10 条 15 分钟:

  • 平均 RT ≈ 被大量快 SQL 稀释到秒级甚至更低

  • P99 仍落在长尾,可达分钟级

表中“最大值”含义:

  • all 最大值 = 时间窗口内 平均 RT 序列 的最大值(17.35 s)

  • 99-all 最大值 = 时间窗口内 P99 序列 的最大值(14.66 min)