更新:[在下面保留我原来的错误帖子]
行。所以我们都数学错误(在你的问题和我最初的答案中)。说 (Total Count * Mean( 应该大致等于运行时的健全性检查只是虚假的数学。
这可以通过以下思考练习简单地证明:
以下非常简单的场景:您测量一个完美运行的应用程序(空闲,所有间隔显示 0 打嗝)100 秒。然后你 ^Z 系统 100 秒。然后你让它再次在前台运行并立即 ^C 它。总运行时间为 200 秒。
以下是关于这样一个系统的一些正确的“人类如何用数字来描述”的陈述:
- 99.99%'ile 将非常接近 100,000 毫秒。
- 10%'ile、20%'ile、... 50%'ile 都将非常接近 0 毫秒。
- 在前 100 秒(以及前 100,000 个采样周期)内,平均值为 0 毫秒。
- 在第二个 100 秒(以及第二个 100,000 个采样周期)期间,平均值为 50,000 毫秒。
- 总体平均值为 25,000 毫秒(超过 200 秒的总运行时间)。
但是(正确地)将在直方图的 TotalCount 中报告 200,000 个结果(每 1 毫秒的经过时间一个)。
所以(平均值 * 总数)= 200,000 * 25,000 == 5,000,000,000
这是挂钟时间的 25,000 倍。这并没有错。该乘法有一个〜N ^ 2的事情(实际上是N *(N-1)/ 2),这正是它的正确行为方式......
这里的关键是,对于每个百分位数,直方图 [正确地] 报告了会遇到低于某个量级的打嗝水平的整体随机样本的百分比(随着时间的推移在没有协调的情况下执行)。当发生单个长时间冻结时(例如,在您的示例输出中看到最大 2,654 毫秒),这不是会受到影响的 1 个时间点。受影响的采样时间点与冻结的毫秒数一样多。正确测量和表示,一次冻结将产生大约每毫秒 1 个计数,值在最大值和 0 之间线性变化(2654 毫秒、2653 毫秒、2652 毫秒、... 3 毫秒、2 毫秒、1 毫秒)。这是计算随机、不协调的样本可能遇到的可能延迟分布的正确方法。
我有点尴尬,因为我最初的回答重复了我在题为“如何不测量延迟”(http://www.infoq .com/presentations/latency-pitfalls,这是在大约 32 分钟的“协调遗漏问题”下)。我用正确的数学方法构建了 jHiccup 和 HdrHistogram 来避免这个问题,这就是为什么你会在数据中看到正确的结果。
事实上,如果你的健全性检查显示“好”数字,最大时间在 1000 毫秒内,这将很好地表明测量系统正在表现出协调遗漏......
——吉尔。
--------原始答案,这是“错误的” ------------
您可以发布一个示例 .hgrm 数据集来说明这一点吗?我刚刚查看的文件似乎显示了总检测运行时间与 .hgrm 文件中的计数之间的密切关系。最简单的健全性测试是 Total Count * Mean(均在文件底部报告)应该非常接近运行时。该数据来自产生百分位线的同一直方图......
请注意,由于一个非常简单的原因,百分位线上的计数不是相加的。对于相同的精确值,可以报告两个百分位水平。这对于噪音很小的长时间运行来说是很常见的。但是,您上面的数学(仅计算增量计数)“应该”正常工作。
[小记,你的数学偏离了 1 行:每个百分位线显示百分位和数值等于或低于该行值的值的计数。因此,值应乘以下一行 (n+1) 的计数与“此”行 (n) 的计数之间的增量,但这不应该对您的测量产生很大影响]。
下面是一个示例文件格式控制运行,耗时约 1685 秒,其中 jHiccup 在运行 30 秒后开始检测(因此检测时间约为 1655 秒)。在这个数据集上使用excel,结果:
Sum( (TotalCountIncludingThisValue[n+1] - TotalCountIncludingThisValue[n]) * Value[n] )
显示约 16237 秒,平均 * 总计数显示约 16591 秒。
jHiccup 直方图报告,2013 年 4 月 22 日星期一 15:28:07 CDT:
值、百分位数、TotalCountIncludingThisValue
1.01 0.000000000000 47
1.06 0.100000000000 483774
1.06 0.200000000000 483774
1.06 0.300000000000 483774
1.10 0.400000000000 628589
1.11 0.500000000000 804685
1.12 0.550000000000 1024190
1.12 0.600000000000 1024190
1.12 0.650000000000 1024190
1.13 0.700000000000 1388741
1.13 0.750000000000 1388741
1.13 0.775000000000 1388741
1.13 0.800000000000 1388741
1.13 0.825000000000 1388741
1.13 0.850000000000 1388741
1.13 0.875000000000 1388741
1.13 0.887500000000 1388741
1.13 0.900000000000 1388741
1.13 0.912500000000 1388741
1.14 0.925000000000 1471124
1.14 0.937500000000 1471124
1.14 0.943750000000 1471124
1.14 0.950000000000 1471124
1.14 0.956250000000 1471124
1.14 0.962500000000 1471124
1.14 0.968750000000 1471124
1.14 0.971875000000 1471124
1.14 0.975000000000 1471124
1.14 0.978125000000 1492169
1.14 0.981250000000 1492169
1.14 0.984375000000 1492169
1.14 0.985937500000 1492169
1.14 0.987500000000 1492169
1.14 0.989062500000 1492169
1.15 0.990625000000 1500639
1.15 0.992187500000 1500639
1.15 0.992968750000 1500639
1.15 0.993750000000 1500639
1.15 0.994531250000 1500639
1.16 0.995312500000 1504895
1.16 0.996093750000 1504895
1.16 0.996484375000 1504895
1.16 0.996875000000 1504895
1.16 0.997265625000 1504895
1.16 0.997656250000 1504895
1.17 0.998046875000 1506535
1.17 0.998242187500 1506535
1.17 0.998437500000 1506535
1.17 0.998632812500 1506535
1.17 0.998828125000 1506535
1.18 0.999023437500 1507442
1.18 0.999121093750 1507442
1.18 0.999218750000 1507442
1.18 0.999316406250 1507442
1.18 0.999414062500 1507442
1.18 0.999511718750 1507836
1.18 0.999560546875 1507836
1.18 0.999609375000 1507836
1.18 0.999658203125 1507836
1.18 0.999707031250 1507836
1.19 0.999755859375 1508028
1.19 0.999780273438 1508028
1.19 0.999804687500 1508028
1.19 0.999829101563 1508028
1.20 0.999853515625 1508106
1.20 0.999877929688 1508106
1.21 0.999890136719 1508145
1.21 0.999902343750 1508145
1.22 0.999914550781 1508163
1.22 0.999926757813 1508174
1.25 0.999938964844 1508186
1.34 0.999945068359 1508195
1.82 0.999951171875 1508204
2.42 0.999957275391 1508213
3.54 0.999963378906 1508222
4.74 0.999969482422 1508231
5.09 0.999972534180 1508236
5.98 0.999975585938 1508241
6.24 0.999978637695 1508245
7.01 0.999981689453 1508251
7.97 0.999984741211 1508254
8.26 0.999986267090 1508257
8.96 0.999987792969 1508259
9.02 0.999989318848 1508261
9.98 0.999990844727 1508265
10.24 0.999992370605 1508266
11.01 0.999993133545 1508268
11.01 0.999993896484 1508268
11.97 0.999994659424 1508269
13.95 0.999995422363 1508271
14.98 0.999996185303 1508272
14.98 0.999996566772 1508272
16.00 0.999996948242 1508273
16.00 0.999997329712 1508273
17.02 0.999997711182 1508274
18.05 0.999998092651 1508275
18.05 0.999998283386 1508275
18.05 0.999998474121 1508275
18.05 0.999998664856 1508275
19.07 0.999998855591 1508276
19.07 0.999999046326 1508276
19.07 0.999999141693 1508276
19.07 0.999999237061 1508276
19.07 0.999999332428 1508276
19.97 0.999999427795 1508277
19.97 1.000000000000 1508277
#[Mean = 1.10, StdDeviation = 0.06]
#[Max = 19.84, Total count = 1508277]
#[Buckets = 25, SubBuckets = 256]