什么是P99延迟?

mav*_*rik 100 networking web-services web-applications p99

P99延迟代表什么?我在关于应用程序性能的讨论中一直听到这个,但是找不到可以讨论这个问题的在线资源.

Tom*_*icz 151

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

  • 只有 1% 的请求**预计**会变慢。 (63认同)
  • 该死的,我给了赞成票,并将赞成票的数目从99个标记中移出。抱歉。 (4认同)

tra*_*nmq 33

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

Latency    Number of requests
1s         5
2s         5
3s         10
4s         40
5s         20
6s         15
7s         4
8s         1
Run Code Online (Sandbox Code Playgroud)

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

  • 发现这是更实际的例子:) (3认同)
  • 我们如何/为什么在这里选择 7? (3认同)
  • 我喜欢这个例子!更容易理解。 (2认同)
  • @ShahbazZaidi 你接受了所有的请求并丢弃了 99% 的底部请求。在上面的示例中,我们丢弃所有延迟在 1 秒到 7 秒之间的请求。 (2认同)

小智 16

我们可以通过类比来解释,如果有100名学生参加比赛,那么99名学生将在"延迟"时间内完成比赛.

  • `不应该````. (16认同)
  • 我喜欢这个比喻。 (4认同)
  • 另外,<='等待时间' (3认同)
  • 这是第99名的学生越界的时候。 (3认同)

Kan*_*mar 16

让我们从这里举个例子

Request latency:
    min: 0.1
    max: 7.2
    median: 0.2
    p95: 0.5
    p99: 1.3
Run Code Online (Sandbox Code Playgroud)

所以我们可以说,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 为 10 毫秒,则 99 个百分点的请求的延迟应小于或等于 10 毫秒。