作者:滔滔不绝
链接:https://www.zhihu.com/question/20575291/answer/22814728
来源:知乎
服务端的监控有很多指标,常见的QPS和延时,通常延时我们会用95th、99th来标记。很多工作多年的服务端工程师平常会查看延时,但是这两个指标是什么意思都不清楚。很多开源的数据库压测工具都会关注这个指标,比如:YCSB.
首先,这是一个统计的概念。如果知道某数在一个有序排列的集合中,处于什么位置,我们就对整个数据集合就有了概念。首先,它衡量的是一组数据,对于某个接口,准确统计它的流量时非常有用,它可以取出一些偶然得到的异常值。 95th百分点是统计时所采用的最高值,超过的5%的数据将被舍弃。
这样可以将瞬间的毛刺(尖峰)去掉,使统计平均更具真实意义。
例如: 收集的数据(20个点)为
将该序列降序排列。
由于20个点的5%为1,所以我们舍弃1个最大值89。剩下的最大值76就是我们所说的95th百分点.
在服务端中,假如你1min中采集了1000词请求的延时,那么95标记的就是降序排完之后950个的延时,这样极端的个别lantency异常的点就不会被统计到,从而让你以为是整体延时偏高。
领取专属 10元无门槛券
私享最新 技术干货