《普罗米修斯?对!就是 Prometheus ,如何计算 P90 / P99 ? 准确评控服务耗时性能!》, 一起来围观吧 https://blog.csdn.net/qq_34417408/article/details/118447876?utm_source=app&app_version=4.10.0&code=app_1562916241&uLinkId=usr1mkqgl919blen
1条回答 默认 最新
关注 让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如需一对一服务私聊我哦
问题:如何计算 P90 / P99,准确评控服务耗时性能? 结构鲜明的解答: P90 和 P99 是统计学中的概念,通常用于描述数据的分布情况。在计算服务耗时性能时,P90 表示服务耗时排名前 90% 的请求的耗时;P99 则表示服务耗时排名前 99% 的请求的耗时。这两个指标可以帮助我们更精确地评估服务的性能表现。 实现 P90 和 P99 的计算,一种常见的做法是先对耗时数据进行排序,然后根据数据量计算相应的百分位数。下面是一个示例代码:import numpy as np def get_percentiles(data, percentiles=[90, 99]): """ 计算指定百分位数的值 :param data: 耗时数据列表 :param percentiles: 百分位数列表,默认为 [90, 99] :return: 百分位数和对应的值的字典 """ sorted_data = sorted(data) result = {} for p in percentiles: index = int(len(sorted_data) * (p / 100.0)) result['P{}'.format(p)] = sorted_data[index] return result # 示例数据 data = np.random.normal(loc=1, scale=0.1, size=1000).tolist() + [10] # 计算 P90 和 P99 percentiles = get_percentiles(data) print(percentiles)
上述代码中,使用了 NumPy 库的 normal 函数生成了 1000 个正态分布的随机数,并添加了一个特别大的值,以模拟异常情况。然后使用 get_percentiles 函数计算了 P90 和 P99 对应的值。最后输出结果如下:
{'P90': 1.0968952197977261, 'P99': 1.2801766192173583}
该结果表明,耗时排名前 90% 的请求的耗时不超过 1.1 秒,而耗时排名前 99% 的请求的耗时不超过 1.3 秒。通常情况下,P90 的值应该尽量小,以保证大多数请求都能够快速响应;而 P99 的值则可以稍微放宽,以容忍极少数请求出现较长的耗时。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 matlab中使用gurobi时报错
- ¥15 WPF 大屏看板表格背景图片设置
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
- ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
- ¥16 mybatis的代理对象无法通过@Autowired装填
- ¥15 可见光定位matlab仿真
- ¥15 arduino 四自由度机械臂