计算系统的 TP50、TP90 指标

TP指标说明

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

TP=Top Percentile,Top百分数,是一个统计学里的术语,与平均数、中位数都是一类。

TP50、TP90、TP99和TP999等指标常用于系统性能监控场景,指高于50%、90%、99%等百分线的情况

计算

这个计算方式是基于 nginx 的 access.log 去计算得到的。

xxx.xxx.xxx.xxx - - [10/Aug/2022:06:25:07 +0800] "POST /test HTTP/1.1" 200 311 "-" "Apache-HttpClient/4.5.8 (Java/1.8.0_212)" "-"|0.004|0.004

这个是 access.log 中的某行,下面的计算都是基于这格式去获取的。最后两个 0.004 分别是request_timeupstream_response_time 的取值

计算步骤

计算时间段为 18:00:00-18:59:59

# 获取小时:读取 access.log 文件,以 : 做为分隔符,取第二个切割值打印出来
awk -F ':' '{print $2}' access.log
# 获取小时+request_time
# 因为 request_time 可以通过 | 去进行分割,所以 awk 进行修改
# request_time 单位为秒,需要 * 1000 变成毫秒
awk -F '[:|]' '{print $2,$3,int($5*1000)}' access.log
# 再根据第三列进行排序,以数字形式 -n,把结果输入到 total.txt 文件中
awk -F '[:|]' '{print $2,$3,int($5*1000)}' access.log | sort -k 3 > total.txt

得到了总的数据,且根据时间进行了排序,后面的就是通过 vim 打开,跳转到某行,查看改行的请求时间就是你的 TP指标了

你可能感兴趣的:(计算系统的 TP50、TP90 指标)