When the OS gets in the way
summary
Shows concrete wins: using isolcpus and cpusets to carve CPU domains, pinning hot JVM threads with sched_setaffinity, and measuring with perf and ftrace to find kernel work (kworker, cache_reap, VM stat updates) that causes microsecond pauses. Interthread-latency distributions move from hundreds of micros to tens under load — mean/percentiles roughly halve in tuned runs on LINUX; example app and measurements run end to end and the approach demonstrably reduces jitter.
AI-written summary · about
chapters (34)
- 0:00Intro
- 0:45It's not the OS's fault
- 1:20Useful in some scenarios
- 2:03Jitter
- 2:56Dealing with it
- 4:04Measure first
- 5:38Modern hardware layout
- 7:16Multi-tasking
- 8:07Linux CFS
- 10:02An example application ...
- 11:13running on a language runtime
- 11:43running on an operating system
- 12:17Optimise for locality - PCl/memory
- 14:18Target deployment
- 15:01Start with the metal
- 15:49Discover what's available
- 17:48Reserve & use specific resource
- 19:01Deploy the application
- 20:18A solution: cpusets
- 20:58Isolate OS processes
- 22:22Run the application
- 23:08Isolated threads
- 24:25perf_events
- 25:46What's happening CPU?
- 26:38Rogue process
- 29:04ftrace
- 30:15So what is that kernel thread doing?
- 30:50Some things can't be deferred
- 32:22Things to look out for
- 36:02Some numbers
- 38:02tuned vs untuned (log scale)
- 39:18Results (loaded system)
- 39:56tuned vs untuned (loaded system)
- 40:21Summary
related talks
49mResponding in a Timely Manner
31mMeasuring the Impacts of the Preempt-RT Patch
09mInterrupts: The Hidden World of Linux Performance
51mJava vs CPU — round 2
15mOptimizing Application Performance on Kubernetes
48mFantastic Performance and Where to Find It
23mSpeed is awesome, but low latency is sublime
45mThe Joy of Building Large Scale Systems
