dotnet / crank

Benchmarking infrastructure for applications
MIT License
989 stars 106 forks source link

Default latency metric should be P99 #760

Closed agocke closed 2 months ago

agocke commented 2 months ago

The industry consensus seems to be that tail latency is the metric that matters, not average latency. This makes sense, because an individual user session likely experiences something closer to the tail latency, not the average latency, and so tail latency more closely matches user experience.

My preference would be to just start tracking P99 latency instead of avg latency.

sebastienros commented 2 months ago

Default latency metric

This repository has a bunch of load generators available. I believe all of them already provide P99. And the most detailed one will provide all values (WRK2). I will assume we are missing some context in this issue.

sebastienros commented 2 months ago

Example of a random run with wrk load generator:

...
| Mean latency (ms)       | 0.96      |                               |
| Max latency (ms)        | 12.80     |                               |
| Bad responses           | 0         |                               |
| Socket errors           | 0         |                               |
| Read throughput (MB/s)  | 727.86    |                               |
| Latency 50th (ms)       | 0.85      |                               |
| Latency 75th (ms)       | 1.07      |                               |
| Latency 90th (ms)       | 1.39      |                               |
| Latency 99th (ms)       | 2.93      |                               |
agocke commented 2 months ago

If I go to https://msit.powerbi.com/view?r=eyJrIjoiYTZjMTk3YjEtMzQ3Yi00NTI5LTg5ZDItNmUyMGRlOTkwMGRlIiwidCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsImMiOjV9 I see Avg Latency, but on P99. Are we just passing the wrong parameters in powerbi?

sebastienros commented 2 months ago

So you didn't mean to file an issue in this repos then. It's about deciding what charts we display in our PBI. Also I believe the link you pasted doesn't go where you want as it opens the BlazorWasm page (at least for me) and there is no such metric there. These kinds of issues are usually discussed on https://github.com/aspnet/benchmarks which hosts the apps, config and ci runs for this PBI.

I can add the P99 on the nativeaot page if that's what you meant (otherwise let me know which page and I'll do it)

agocke commented 2 months ago

So you didn't mean to file an issue in this repos then

Yup, sounds like this was the wrong place. Thanks!