• TP50、TP90、TP99、TP999详解


    概念:TP指标: 指在一个时间段内,统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序,并取出结果为:总次数 * 指标数 = 对应TP指标的值, 在取出排序好的时间。

    TP50:指在一个时间段内(如5分钟),统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第50%的那个值作为TP50 值;配置此监控指标对应的报警阀值后,需要保证在这个时间段内该方法所有调用的消耗时间至少有50%的值要小于此阀值,否则系统将会报警。

    TP90,TP99,TP999与TP50值计算方式一致,它们分别代表着对方法的不同性能要求,TP50相对较低,TP90则比较高,TP99,TP999则对方法性能要求很高。

    举个例子:有四次请求耗时分别为:

    10ms,1000ms,100ms,2ms

    那么我们可以这样计算TP99:4次请求中,99%的请求数为4*0.99,进位取整也就是4次,满足这全部4次请求的的最低耗时为1000ms,也就是TP99的答案是1000ms。

    一、 TP50、TP90、TP99、TP999

    TP(Top Percentile)Top百分数,是一个统计学的术语,与平均数、中位数一样。是不是看着这句话很眼熟?对,没错,是我抄过来的。请脑补一个大笑的表情,以达到我这句话的效果,谢谢

    在网上看了很多帖子,是这样解释这些指标的:
    TP50:满足百分之五十的网络请求所需的最低耗时。
    TP90:满足百分之九十的网络请求所需的最低耗时。
    TP99:满足百分之九十九的网络请求所需的最低耗时。
    TP999:满足千分之九百九十九的网络请求所需的最低耗时。

    public static final int TOTAL_RUNS = 1000000;
    public static final int TP50 = (int)(TOTAL_RUNS * 0.50);
    public static final int TP90 = (int)(TOTAL_RUNS * 0.90);
    public static final int TP99 = (int)(TOTAL_RUNS * 0.99);
    public static final int TP99_9 = (int)(TOTAL_RUNS * 0.999);
    public static final int TP100 = (int)(TOTAL_RUNS * 1);

    看完这些解释,我只想说一句。。。。
    我看不懂!!!能不能举栗说明一下子!!!

    当然,热心的网友朋友们,当然会满足你的要求。

    例子大概是这样写的:

    有四次请求耗时分别为:
    10ms,1000ms,100ms,2ms
    那么我们可以这样计算TP99:4次请求中,99%的请求数为4*0.99,进位取整也就是4次,满足这全部4次请求的的最低耗时为1000ms,也就是TP99的答案是1000ms。

    你没有猜错,这个栗子也是我偷过来的。
    网友们给出的栗子,也是Google到别人的解释。

    不知道为什么,刚看这个,看了好多次都没看懂到底是为什么,当然不排除是我笨的原因。
    直到,我看到了这个栗子的原版。
    **tp90 is a minimum time under which 90% of requests have been served. Imagine you have times:
    10s
    1000s
    100s
    2s
    Calculating TP is very simple:

    sort all times in ascending order: [2s, 10s, 100s, 1000s]
    find latest item in portion you need to calculate. For TP50 it will ceil(4.5)=2 requests. You need 2nd request. For TP90 it will be ceil(4.9)=4. You need 4th request.
    get time for the item found above. TP50=10s. TP90=1000s**

    仔细看上边的解释
    TP90:先算出90%的请求是多少,4*0.9进位取整也就是4次
    也是满足四次请求的最低耗时,也就是四次请求中,耗时最长的那个时间。
    那个排序就是为了让大家更清楚的看到结果。

    一、解释

    TP=Top Percentile,Top 百分位数。
    是统计学中的一个统计值,类似中位数、四分位数等概念。
    可以认为 TP90的意思是保证90%请求都能被响应的最小耗时。TP50、TP99、TP999同理。
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    以下先看一下Google到的一段解释:
    The tp90is a minimum time under which 90% of requests have been served.
    tp90 =top percentile 90
    Imagineyou have response times:
       10s
       1000s
       100s
       2s
    CalculatingTP is very simple:
    1.     Sort all times in ascending order: [2s, 10s, 100s, 1000s]
    2.     find latest item in portion you need to calculate.
           2.1 For TP50 it will be ceil(4*0.5) = 2 requests. You need 2nd request.
           2.2 For TP90 it will be ceil(4*0.9) = 4. You need 4th request.
    3.     We get time for the item found above. TP50=10s. TP90=1000s
    依此,翻译过来:
    TP99就是满足百分之九十九的网络请求所需要的最低耗时。
    举个例子,有四次请求耗时分别为:10ms,1000ms,100ms,2ms
    计算TP非常简单:
    1.    将所有时间按升序排序:[2s,10s,100s,1000s]
    2.    在需要计算的部分中找到需要的项。
           2.1 对于TP50,即ceil(4 * 0.5)=2,您需要第二个请求。
           2.2 对于TP90,即ceil(4 * 0.9)=4,您需要第四个请求。
    3.    我们在上面找到对应的时间,TP50 = 10秒,TP90 = 1000秒。
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    这个指标主要用于性能监控:
    TP指标:指在一个时间段内,统计该方法每次调用所消耗的时间,并将这些时间按从小到大的顺序进行排序, 并取出结果为 : 总次数 * 指标数 = 对应TP指标的序号 , 再根据序号取出对应排序好的时间,即为TP指标。
    举例:
    假设上一分钟内接口被调用100次,100次的调用耗时分别为:1、2、3...99、100秒。  
    我们对耗时进行从小到大排序,形成容量为100的数组A=[1s,2s,3s....99s,100s]  
    TP50的计算方式:100*50%=50,所以TP50指标=A[50]=50s
    TP99的计算方式:100*99%=99,所以TP99指标=A[99]=99s
    TP999的计算方式:100*999%=99.9,99.9进位取整为100,所以TP999指标=A[999]=100s  
    配置TP50指标=50s:配置此监控指标对应的报警阈值后,需要保证在某一时间段内该方法所有调用的消耗时间至少有50%的值要小于此阀值,否则系统将会报警;
    配置TP99指标=99s:配置此监控指标对应的报警阀值后,需要保证在某一时间段内该方法所有调用的消耗时间至少有99%的值要小于此阈值,否则系统将会报警;
    依次类推。
    TP90,TP99,TP999与TP50值计算方式一致,它们分别代表着对方法的不同性能要求,TP50相对较低,TP90则比较高,TP99,TP999则对方法性能要求很高。
    其实我们在实际应用过程中,首先可对系统调优、压测、调优,并根据业务、性能的要求估算出某接口的所表现出的响应速度能力。然后确定90%的调用所能接受的最高响应时间t1,99%的调用所能接受的最高响应时间t2。 t2必然大于t1。 最后将确定好的指标作为阈值配置到监控系统。
    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    二、实际应用

    TP50为例,TP90TP99TP9999….等依此类推,对于我们工作中的应用有两种:
    1.   计算TP50所需要的最短交付时间,所需要的序号设置X,X=单位时间内总次数*TP指标标号,将交付时间升序排列,从而得出TP50为序列第X位的交付时间。
    例:2021年1月发生了100次维修,交付时间(天)从小到大排序分别为下表:
      
    序号
      
    1
    2
    3
    4
    50
    90
    99
    100
      
    用时
      
    2
    2
    2
    3
    3
    3
    4
    5
    TP50=3天
    TP90=3天
    TP99=4天
    2.   计算达标率,即设置了TP指标后,通过在一段时间内计算得出交付时间阈值,我们可以计为T作为达标标准,从而计算出达到阈值的比例。
    例:2020年12月共计发生100次维修,交付时间(天)由小到大排序为下表:
      
    序号
      
    1
    2
    3
    4
    50
    90
    99
    100
      
    用时
      
    2
    2
    2
    3
    3
    3
    4
    5
    TP50=3天,此时间值为T,即达标的时间标准。
    再计算达标率<=3天的维修次数,可以看到90%的工单达标,所以达标率为90%,但不能说直接说TP50=90%,这样很容易让人混淆。
  • 相关阅读:
    opentsdb安装部署
    python发送邮件(html)例子
    python查库写库例子
    获取rds的cpu和内存使用情况
    数据库损坏的情况下如何获取到dbid
    grafana安装升级部署
    Specified key was too long
    mysql动态执行sql批量删除数据
    kafka删除topics
    cratedb导入json文件
  • 原文地址:https://www.cnblogs.com/zhangxinglong/p/14324858.html
Copyright © 2020-2023  润新知