【问题标题】:How to measure latency distribution如何测量延迟分布
【发布时间】:2015-01-27 14:14:31
【问题描述】:

我正在尝试分析系统中的延迟分布。通过以下方式收集延迟:然后测量每分钟观察到的最大延迟,如果此延迟是今天看到的最大延迟,则记录此值。在一天结束时,我有这样的事情:

[12, 15, 19, ..., 57, 120]

这是一天中以毫秒为单位的 API 调用时间。我需要从这些数据中构建一些有用的指标,但我不知道如何!显然,如果我从这个数据集中计算平均值或中位数是没有意义的。它不会代表真正的中值或平均值,因为如果最大延迟发生在一天的第一分钟 - 它既是中值也是平均值。我不能依赖最大值,因为这可能是由网络延迟等罕见事件引起的异常值。这个异常值不代表代码质量,也无助于捕捉真正的错误。

您能帮我从这些数据中建立有意义的指标吗?

【问题讨论】:

  • 您是否试图获得一些排除异常值的平均值?
  • 没错。我需要异常值,但这很简单。
  • 听起来你需要某种moving average。您也许可以从这样的平均值中排除固定数量的异常值。
  • 我需要从这个数字列表中生成单个测量值。这是一天的延迟数字,我计划在更大的时间范围内汇总这些测量值并进行分析。是的,可以使用移动平均线,但首先我需要从这个数字列表中建立一些指标。
  • 可能有可能设计一种方法来从您可用的运行最大值推断特定分布的参数。那么你唯一报告的数字可能是(比如说)估计分布的第 95 个或第 99 个百分位数。我不知道这是否是一个已解决的问题;您可以通过在 stats.stackexchange.com 上询问来找到答案。这听起来确实是一个有趣的问题,但有点太糟糕了,因为我确定你不想要一个有趣的问题。

标签: performance statistics monitoring latency


【解决方案1】:

假设您有报告数字的时间戳,您可以构造参数分布的似然函数,找到最大似然参数估计值,然后计算适当的分位数(0.95、0.99、0.999 等)并报告作为每日有多糟糕的数字。我说参数分布是因为我不知道如何以非参数方式进行。

给定报告数字的时间戳,并假设每分钟观察一次延迟,您可以计算出报告中省略了多少观察到的延迟;它只是从一个报告数字到下一个报告数字的分钟数。对于每个报告的数字 x_i,似然函数中有一个项 p(x_i | a),其中 p 是概率密度,a 表示所有参数(一个或多个)。对于每个未报告的数字,在似然函数中都有一个项 P(x_i | a),其中 P 是累积分布函数,x_i 是最近报告的数字;报告数字之间的一个间隙中未报告数字的所有术语可以收集到单个术语 P(x_i | a)^n_i 其中 n_i 是间隙中未报告数字的数量,其中 x_i 是左端点,x_{i + 1} 是正确的端点。

综上所述,似然函数为

L(a) = product(p(x_i | a), i, 1, n) * product(P(x_i | a)^n_i, i, 1, n)

其中 n 是报告数字的数量。使用它的对数可能更方便。有了 L,策略是相对于 a 最大化 L,然后计算 P(x | a*) 的分位数,其中 a* 是最大似然参数,并报告分位数。

我不知道为延迟假设的合适分布是什么。我将从 Weibull 分布开始,但您可能需要尝试其他分布。

这里有各种未说明的假设。有兴趣可以填写详细资料。

【讨论】:

    【解决方案2】:

    这是一种不同的方法,它是非参数的。您可以在上下限定经验累积分布函数:在 x_i 和 x_{i + 1} 之间,(1) 它由肯定小于或等于 x_i 的值的分数限定,并且 (2) 它是以肯定大于 x_i 的值的分数为界。

    这些界限可能非常宽松;反转经验 c.d.f.将导致分位数的界限非常宽 - 这意味着您的构成“异常值”的界限只会在相对较宽的范围内知道。您可以做一个简化的假设,例如假设 c.d.f.在 x_i 和 x_{i + 1} 之间是分段线性的,以便得到点值。

    (1) 只是观察到 x_{i + 1} 之前的值总数(报告和省略)除以全天的值总数。 (2) 只是 1 减(x_i 之后报告的值的数量(因为我们确定的唯一大于 x_i 的值)除以全天的值总数)。

    编辑:更正 (2)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-11
      • 2021-06-07
      • 2010-11-17
      • 2015-01-23
      • 2021-01-02
      • 1970-01-01
      • 2023-03-14
      相关资源
      最近更新 更多