什么是 P99 延迟?

问题描述 投票:0回答:7

P99延迟代表什么?我在有关应用程序性能的讨论中不断听到这一点,但在网上找不到讨论此问题的资源。

web-services networking web-applications
7个回答
432
投票

这是第 99 个百分位。这意味着 99% 的请求应该比给定的延迟更快。换句话说,只允许 1% 的请求变慢。


117
投票

假设您正在收集服务的性能数据,下表是结果的集合(延迟值是虚构的以说明这一想法)。

Latency    Number of requests
1s         5
2s         5
3s         10
4s         40
5s         20
6s         15
7s         4
8s         1

您的服务P99延迟为7秒。只有 1% 的请求需要比这更长的时间。因此,如果您可以减少服务的 P99 延迟,您就可以提高其性能。


94
投票

我们可以打个比方来解释,如果有 100 名学生参加比赛,那么应该有 99 名学生在“延迟”时间内完成比赛。


31
投票

让我们以这里

为例
Request latency:
    min: 0.1
    max: 7.2
    median: 0.2
    p95: 0.5
    p99: 1.3

因此我们可以说,99% 的 Web 请求的平均延迟为 1.3 毫秒(毫秒/微秒取决于您配置的系统延迟测量)。 就像 @tranmq 所说,如果我们减少服务的 P99 延迟,我们就可以提高其性能。

还值得注意的是 p95,因为可能很少的请求使得 p99 比 p95 更昂贵,例如)构建缓存、类对象预热、线程初始化等的初始请求。 因此,p95 可能会剔除那 5% 最坏的情况。仍然在这 5% 中,我们不知道真实噪声情况与最坏情况输入的百分位数。

最后;我们的测量中可能存在大约 1% 的噪声(例如网络拥塞、中断、服务降级),因此 p99 延迟很好地代表了实际上最坏的情况。而且,几乎总是,我们的目标是减少 p99 延迟。


13
投票

打个比方解释一下P99:

If 100 horses are running in a race, 99 horses should complete the race in less than or equal to "latency" time. Only 1 horse is allowed to finish the race in time higher than "latency" time.

这意味着如果 P99 为 10ms,则 99 个百分点的请求的延迟应小于或等于 10ms。


2
投票

如果 p99 值为 1ms,则表示 100 个请求中有 99 个请求的时间小于 1ms,而 1 个请求的时间约为 1 或超过 1ms。


0
投票

简单地说,假设您有一个 API,其合同规定它必须在 10 毫秒 (ms) 内响应调用者。在一个小时的时间里,您收到了来自不同消费者的各种请求:

消费者 A 在上午 10:00 发出了 10 个请求,每个请求的响应时间为 5 毫秒。 消费者 B 在上午 10:05 发送了 2 个请求,每个请求有 5 毫秒的响应。 上午 10:07,消费者 B 提交了 20 个请求,每个请求的响应时间为 7ms。 同样在上午 10:07,消费者 B 又收到了 20 个请求,响应时间为 7 毫秒。 上午10点20分,消费者B请求20次,响应时间11ms。 消费者B在上午10点15分发出了30个请求,并在12毫秒内得到响应。 上午10点30分,消费者B提交了20个请求,每个请求耗时10ms。 最后,在上午 10:43,消费者 B 有 40 个请求,响应时间为 9 毫秒。 如果我们将这些响应时间按升序排序,第二高的响应时间为 11ms,超过了约定的 10ms。该值称为 P99,表示 99% 的响应低于或等于 11 毫秒。由于 P99 超出了约定的响应时间,因此我们还应该检查 P95,它检查所有请求中的 95% 是否违反了约定的响应时间。如果确实如此,我们还必须研究 P90。通过持续监控这些指标(P90、P95 和 P99),运营团队可以快速识别服务或基础设施中的问题并采取纠正措施。

© www.soinside.com 2019 - 2024. All rights reserved.