HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

"How NOT to Measure Latency" by Gil Tene

Strange Loop Conference9 HN recommenders · recommended in 9 months, 2015-2026
YouTube
119K views · 11 years ago · talk · evergreen

Gil Tene of Azul Systems explains common pitfalls in measuring latency and response time, including why averages mislead and the problem of coordinated omission. He introduces open source tools like HdrHistogram for better measurement and reporting.

The canonical recommendation whenever percentiles, tail latency, load testing or averages come up, described by some as life changing.

Software performance & optimizationTesting, debugging & developer tools#coordinatedomission#percentiles#taillatency#hdrhistogram#performancetesting

20 comments from Hacker News

@mrngm2026 · in “Queueing Requests Queues Your Capacity Problems, Too”

That reminds me of this talk[0] by Gil Tene called "How NOT to Measure Latency" at the Strangeloop conference in 2015 (or read this blog post[1] that contains the most important points). [0] ▶ this video [1] link

CitesView on HN
@super_linear2025 · in “How Not to Measure Latency (The P99 Lie) by GIL Tene”

Tried to link to the specific timestamp in the video, where the p99 lie is discussed. Core takeaway for me was that most users of a page will experience the p99 latency of the system: ▶ this video

RecommendsView on HN
@nerpderp822023 · in “Four Kinds of Optimisation”

Performance (Really) Matters by Emery Berger talks a lot about layout. link And the topic of Coordinated Omission, "How NOT to Measure Latency" by Gil Tene ▶ this video Injection slowness into an application to measure the relative impact of that portion of the application has really worked well for me.

CitesView on HN
@xxpor2023 · in “Firefox Got Faster for Real Users in 2023”

I'm sure internally folks are looking at more stuff, but blog post wise, it makes it look like you're intentionally omitting it (see ▶ this video )

CriticalView on HN
@remram2023 · in “Your nines are not my nines (2019)”

I remember seeing a talk years ago about percentiles and how they lie: ▶ this video You should be exposing the maximum metric from your app, computing a percentile from an aggregated histogram is lossy. [edit: Found the link, "How NOT to Measure Latency" by Gil Tene]

CitesView on HN
@leetrout2023 · in “Grasshopper – An Open Source Python Library for Load Testing”

We use locust at work but I HIGHLY recommend wrk for a very robust yet simple load testing tool. link And of course, this talk by Gil Tene is fantastic if you're interested in load testing stats ▶ this video

Strongly recommendsView on HN
@dikei2022 · in “Your load generator is probably lying to you”

> I found this article hard to read; it felt like bulleted noted after watching a presentation and many of the statements lacked the context to back them up. Because it is. Here's the presentation. ▶ this video

CitesView on HN
@kryptiskt2021 · in “Suspicious Discontinuities”

I don't know if it's the correct talk, but those ideas are explored in "How NOT to Measure Latency by Gil Tene: ▶ this video

CitesView on HN
@atombender2020 · in “K6: Like unit testing, for performance”

Does K6 deal with the coordinated omission problem? Gil Tene (Azul Systems) has argued convincingly [1] (slides [2]) that monitoring tools get latency measurement wrong because sudden spikes aren't represented correctly in timings because of averaging and the wrong use of percentiles. He argues that percentiles simply aren't useful, because, statistically, most requests will experience >= 99.99-percentile response times. All percentiles lie; the only truly useful and realistic number is, in fact, the 100th percentile. He also argues that the most revealing way to show latency is with a complete histogram. I haven't used K6 yet, but I've been looking for a good load-testing tool, and intend to try it out. [1] ▶ this video [2] link

CitesView on HN
@agallego2020 · in “Kafka Removing Zookeeper Dependency”

who cares about lower percentage tiers in the world of big data? what does the p30 or 50 even matter at large scale? See Gil Tene's talk on how not to measure latency. ▶ this video What matters is what most of your customers will get - p99, p999, p9999, p100.

RecommendsView on HN
@wmfiv2020 · in “Ask HN: Must Read from ACM Library?”

This a life changing video by Gil Tene on this topic. Bottom line is because of the number requests to support a single customer "request", the high percentiles are the ones that actually matter. ▶ this video

Strongly recommendsView on HN
@allanrbo2020 · in “Lies, Damned Lies, and Averages: Perc50, Perc95 Explained for Programmers”

The "how not to measure latency" talk by Gil Tene is another really good explanation of this topic: ▶ this video

RecommendsView on HN
@the84722019 · in “Deterministic thinking: a problem in how we think, not just in how we act”

Some additional examples of people fixing instances of this problem Dissolving the fermi paradox [0], convolves distributions instead of multiplying point estimates of life/no life. How to NOT measure latency , looks at CDFs instead of slow/fast thresholds. [0] link [1] ▶ this video

CitesView on HN
@Rafuino2019 · in “Averages Can Be Misleading: Try a Percentile (2014)”

This topic always leads me to think about this great talk from Gil Tene on how NOT to measure latencies (basically, don't use averages!). ▶ this video I'm also a huge fan of how Dormando showed latency distributions in one of his recent Memcached Extstore posts. The default is 95th percentile but you can change the percentile to what matters to you (i.e. 99th percentile if you ask me!). Scroll down to see what he did and play with it. link

Strongly recommendsView on HN
@latch2018 · in “We can do better than percentile latencies”

Worth watching is How NOT to Measure Latency: ▶ this video The speaker Gil Tene is also the author of the HdrHistogram which addresses this articles point: link

RecommendsView on HN
@telotortium2017 · in “Unlearning descriptive statistics”

Gil Tene has an entire talk about this point called "How NOT to measure latency" ( ▶ this video ). In many circumstances, a web service (either server or client) has large numbers of dependencies, so a user only has to hit 95th-percentile latency for one dependency to have their overall latency significantly hurt. In other words, users may encounter the "rare" bad case on a majority of requests. Thus, even higher percentiles should be tightly controlled in order to truly keep a web service's overall latency under control.

RecommendsView on HN
@sitkack2016 · in “Sanic – Python 3.5+ web server that's written to go fast”

You almost never want to use average as your metric when dealing with time. For time, the 95 or 99 percentile latency is going to be measure of how many requests out of a hundred a less than your metric. Esp when the thing you are measuring is a piece of larger system, which is the crux, because of how a resource in turn requests k-more resources. Each request has an equal chance of being over the latency percentile. Even at 10 requests, only 90% of sessions will be under the 99% latency. See also, Gil Tene ▶ this video A nice overview, link See also, link

CitesView on HN
@vikiomega92016 · in “Throughput vs. Latency and Lock-Free vs. Wait-Free”

Doesn't this depend on how "tuned" your subcomponents are? If I had a system that's supposedly heavily optimized, I would simply start seeing the worst-case latency on a higher percentile, 99.9th and so forth. Gil Tene has an excellent talk[1] on this. [1] ▶ this video

Strongly recommendsView on HN
@hackercomplex2015 · in “Tech-Hub Housing Costs”

this is like.. average latency of 600ms.. sounds great when you tell your CEO but it still doesn't really tell the true story about how a huge portion of your customers are waiting 1.2s for their goddamn page to load. Max doesn't tell the whole story either, but it's pretty revealing. Show me that 99.9999 percentile baby! 4 point precision then we're talkin.. and none of this Coordinated Omission bullshit. ▶ this video </rant>

CitesView on HN
@dang2015 · in “How Not to Measure Latency”

This is a summary of ▶ this video . It looks like a good summary, so I guess we won't replace the URL above, even though HN prefers original sources. We did change the title to that of the talk though.

CitesView on HN
"Performance Matters" by Emery Berger42:15

"Performance Matters" by Emery Berger

Strange Loop Conference
502K views • 7 years ago
"Performance (Really) Matters" with Emery Berger1:04:48

"Performance (Really) Matters" with Emery Berger

Association for Computing Machinery (ACM)
7K views • 6 years ago
Shouting in the Datacenter2:00

Shouting in the Datacenter

Bryan Cantrill
5.7M views • 17 years ago
GopherCon 2015: Go GC: Solving the Latency Problem - Rick Hudson22:51

GopherCon 2015: Go GC: Solving the Latency Problem - Rick Hudson

Gopher Academy
22K views • 11 years ago
Twitter and Visual Studio Rant38:20

Twitter and Visual Studio Rant

Molly Rocket
158K views • 6 years ago
Google I/O 2013 - High Performance Audio40:03

Google I/O 2013 - High Performance Audio

Google for Developers
62K views • 13 years ago
Userbenchmark - the April Fools that never ends14:05

Userbenchmark - the April Fools that never ends

2kliksphilip
2.5M views • 5 years ago
#NoEstimates (Allen Holub)37:45

#NoEstimates (Allen Holub)

Allen Holub
259K views • 11 years ago
Breaking the 1000ms Time to Glass Mobile Barrier45:49

Breaking the 1000ms Time to Glass Mobile Barrier

InfoQ
104K views • 13 years ago
Plenary: Performance Matters - Emery Berger - CppCon 20201:01:09

Plenary: Performance Matters - Emery Berger - CppCon 2020

CppCon
32K views • 6 years ago
CppCon 2017: Carl Cook “When a Microsecond Is an Eternity: High Performance Trading Systems in C++”1:00:07

CppCon 2017: Carl Cook “When a Microsecond Is an Eternity: High Performance Trading Systems in C++”

CppCon
357K views • 9 years ago
A Crash Course in Modern Hardware by Cliff Click59:21

A Crash Course in Modern Hardware by Cliff Click

Devoxx
21K views • 10 years ago
"Stop Rate Limiting! Capacity Management Done Right" by Jon Moore42:20

"Stop Rate Limiting! Capacity Management Done Right" by Jon Moore

Strange Loop Conference
41K views • 9 years ago
Simple Code, High Performance2:50:14

Simple Code, High Performance

Molly Rocket
463K views • 5 years ago
"Controlling Time and Space: understanding the many formulations of FRP" by Evan Czaplicki40:55

"Controlling Time and Space: understanding the many formulations of FRP" by Evan Czaplicki

Strange Loop Conference
69K views • 12 years ago
High Performance Web Sites and YSlow1:00:34

High Performance Web Sites and YSlow

Google TechTalks
90K views • 18 years ago
Zach Tellman - Everything Will Flow40:13

Zach Tellman - Everything Will Flow

ClojureTV
27K views • 11 years ago
CppCon 2017: Chandler Carruth “Going Nowhere Faster”1:00:58

CppCon 2017: Chandler Carruth “Going Nowhere Faster”

CppCon
113K views • 9 years ago
J B  Rainsberger   Integrated Tests Are A Scam HD1:04:36

J B Rainsberger Integrated Tests Are A Scam HD

Christopher Cabanne
49K views • 11 years ago
New computers don't speed up old code19:25

New computers don't speed up old code

Matthias random stuff
187K views • 1 year ago