Understanding Ruby Web Server Internals: Puma, Falcon, and...
summary
Puma is a hybrid multiprocess+threaded server that faces IO blocking and GVL contention (demonstrated as ~48% and ~37% latency bloat in the given example), Falcon uses an event loop + fibers to handle thousands of concurrent IO operations without blocking a worker but risks starvation for CPU‑bound work, and Pitchfork uses reforging/reforking to share JIT/cache pages across workers, reporting ~30% memory reduction and a 9% P99 latency drop versus Unicorn; some gems (eg gRPC) are incompatible and rollout testing via partial traffic/proxy is common.
AI-written summary · about
chapters (7)
- 0:00Introduction to web servers
- 1:36Fundamentals of process models
- 4:27Analyzing the Puma server
- 8:26Using Falcon for IO workloads
- 11:46Pitchfork and reforking
- 17:26Decision framework and summary
- 19:08Q&A session
related talks
25mPuma or Falcon What's the Best Choice for Scalability?
41mHow Puma Works
40mKeynote: A Beginner's Guide to Puma Internals
21mConquering Massive Traffic Spikes in Ruby Applications with Pitchfork
26mConcurrency in Ruby: From fork() to Fiber
36mIntroduction to Concurrency in Ruby
27mIn-Depth Ruby Concurrency: Navigating the Ruby concurrency landscape
20mSubprocesses, Threads and Fibers
