一、TP 指标
在对系统进行性能测试或性能监控时候,TP 指标
是一种比较常见的性能参数,包括 TP50、TP99、TP999 等等。
总 次 数 ∗ 指 标 数 = 对 应 指 标 在 总 次 数 中 的 序 号 总次数 \ast 指标数 = 对应指标在总次数中的序号 总次数∗指标数=对应指标在总次数中的序号
通俗点说,假设为了测试某接口性能,对其调用100次,将每次的响应时间升序排序,假设响应时间排序结果为:1、2、3…99、100 毫秒。
那么:
T P 50 = 100 ∗ 50 % = 第 50 次 = 50 毫 秒 TP50 = 100 * 50\% = 第50次 = 50毫秒 TP50=100∗50%=第50次=50毫秒
也就是说,该接口 TP50 达到了 50 毫秒的水平,也就是说请求该接口有 50% 的情况耗时在 50 毫秒以下。
同理:
T P 999 = 100 ∗ 99.9 % = 第 99.9 次 ≈ 100 毫 秒 TP999 = 100 * 99.9\% = 第99.9次 \approx 100毫秒 TP999=100∗99.9%=第99.9次≈100毫秒
也就是说,该接口 TP999 达到了 100 毫秒的水平,也就是说请求该接口有 99.9% 的情况耗时在 100 毫秒以下。
需要注意的是,一般在 TP 指标中,如果对应的序号不是整数,一般向上取整。例如在上例的 TP999 中,序号 99.9 不存在,取了序号 100 来计算。
二、百分位数
TP 指标脱离了在计算机中的应用,实际上在统计学学中就是百分位数
的概念。
百分位数:如果将一组数据从小到大排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。可表示为:一组n个观测值按数值大小排列。如,处于p%位置的值称第p百分位数。
也就是说,TP50 其实就是 50百分位数,TP999 就是 99.9百分位数。百分位数计算的结果是一个具体值,计算公式如下:
假设存在数组(下标从 0 开始) a
,百分位数为:p
,将数组其升序排序后,那么:
( a . l e n g t h − 1 ) ∗ p = i + j (a.length - 1) \ast p = i + j (a.length−1)∗p=i+j
其中 i i i 为结果整数部分, j j j 为结果小数部分。
计算最终结果为:
r e s = ( 1 − j ) ∗ a [ i ] + j ∗ a [ i + 1 ] res = (1 - j) \ast a[i] + j \ast a[i+1] res=(1−j)∗a[i]+j∗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
函数的实现。