~/talk

K8s CPU Limits Deconstructed

Talkat GopherCon UK 2025 · 2025-08-13..08-15· [kubernetes, web-performance]
slides:none on file

Shows that a Go service limited to 250m = 25% CPU (25 ms per 100 ms) on a 16‑core node gets throttled because Go detects 16 cores and spawns many Ps/Ms. Uses kind + Kubernetes, Postgres backend and a 1,000‑request load (10 connections); baseline run yields ~126 req/s. Setting GOMAXPROCS=1 (or using Uber’s maxprocs) restores throughput by matching Go’s threads to the quota. Notes Go 1.25 change: runtime ensures ≥2 procs, so rebench before/after.

AI-written summary · about

  1. 0:00Introduction and origin
  2. 3:23Understanding CPU limits
  3. 6:24Time, latency and hardware
  4. 12:30Go scheduler semantics
  5. 22:24Concurrency vs parallelism
  6. 34:31K8s and Go runtime friction
  7. 40:04Load testing demonstrations
  8. 44:25Optimizing GOMAXPROCS
  9. 49:41Dependencies and closing
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.