性能监控 TP 指标

一、TP 指标

在对系统进行性能测试或性能监控时候,TP 指标是一种比较常见的性能参数,包括 TP50、TP99、TP999 等等。

= 总次数 \ast 指标数 = 对应指标在总次数中的序号

通俗点说,假设为了测试某接口性能,对其调用100次,将每次的响应时间升序排序,假设响应时间排序结果为:1、2、3…99、100 毫秒。

那么:

TP50=10050%=50=50 TP50 = 100 * 50\% = 第50次 = 50毫秒

也就是说,该接口 TP50 达到了 50 毫秒的水平,也就是说请求该接口有 50% 的情况耗时在 50 毫秒以下

同理:

TP999=10099.9%=99.9100 TP999 = 100 * 99.9\% = 第99.9次 \approx 100毫秒

也就是说,该接口 TP999 达到了 100 毫秒的水平,也就是说请求该接口有 99.9% 的情况耗时在 100 毫秒以下

需要注意的是,一般在 TP 指标中,如果对应的序号不是整数,一般向上取整。例如在上例的 TP999 中,序号 99.9 不存在,取了序号 100 来计算。

二、百分位数

TP 指标脱离了在计算机中的应用,实际上在统计学学中就是百分位数的概念。

百分位数:如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。可表示为:一组n个观测值数值大小排列。如,处于p%位置的值称第p百分位数。

也就是说,TP50 其实就是 50百分位数,TP999 就是 99.9百分位数。百分位数计算的结果是一个具体值,计算公式如下:

假设存在数组(下标从 0 开始) a,百分位数为:p,将数组其升序排序后,那么:

(a.length1)p=i+j (a.length - 1) \ast p = i + j

其中 ii 为结果整数部分,jj 为结果小数部分。

计算最终结果为:

res=(1j)a[i]+ja[i+1] res = (1 - j) \ast a[i] + j \ast a[i+1]

举个例子:存在数组:[1, 2, 3, 4, 5, 6, 6, 6, 6, 7, 8, 9],已经保证升序排序了,求90百分位数,那么:

KaTeX parse error: No such environment: split at position 8: \begin{̲s̲p̲l̲i̲t̲}̲ (a.length - 1)…

计算最终结果为:

KaTeX parse error: No such environment: split at position 8: \begin{̲s̲p̲l̲i̲t̲}̲ res &= (1 - 0.…

也就是说,这组数据的90百分位数为 7.9,即 TP90 = 7.9。

PS:以上公式实际上就是 Excel 的 PERCENTILE 函数的实现。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章