4

我想监控 API 的响应时间。我可以使用平均值、中位数等方法进行监控。但是我在使用这些方法时面临以下问题:

平均值问题

如果其中一个请求花费了非常长的时间。例如,在给定的集合中,由于值为 1000,平均值会变高。
S1= [ 1 , 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1000]

中位数问题

它的正确值只有 50%。例如在给定的集合 S2=[2,2,2,2,2,50,50,50,50]。中位数给出的值为 2,但大多数用户都面临着缓慢的响应。

5-95 跨度的问题http://steveakers.com/2013/08/01/span-vs-median-for-response-time-monitors/

在上述文章中,作者建议使用值 uppser95-uppser5。但是,如果响应时间如下所示,则不会产生警报: s3=[50,50,50,50,50] 。在这种情况下,所有 API 的响应都很慢。但跨度 5-95 为零。

我正在考虑使用这两个值中的任何一个。upper95 或 (upper95+upper5)/2。

哪一个会更好,为什么?有没有更好的方法来计算 QOS ?

4

1 回答 1

1

您列出了三个测量值:

  1. 平均(平均)响应
  2. 中值反应
  3. 5-95跨度响应

请注意,#3 测量的东西与 #1 和 #2 不同!

  • 均值和中位数可以衡量实际响应时间。这将解决某一类问题。
  • 5-95 跨度告诉您响应时间的变化程度。即您的响应时间是否一致。这将引发另一类问题。

您可能需要同时跟踪:绝对响应时间和方差。前者的最佳方法(均值与中值,是否剔除异常值)可能取决于您为服务获得的结果。

于 2014-10-14T22:18:24.920 回答