魏小言 2021-07-04 10:15 采纳率: 0%
浏览 18

《普罗米修斯?对!就是 Prometheus ,如何计算 P90 / P99 ? 准确评控服务耗时性

《普罗米修斯?对!就是 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条回答 默认 最新

  • 码农阿豪 Java领域优质创作者 2024-02-22 16:26
    关注
    让阿豪来帮你解答,本回答参考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 四自由度机械臂