~/talk

From Request To Response And Everything In Between

Talkat RailsConf 2024 · 2024-05-07..05-09· [ruby-on-rails, web-performance]
slides:none on file

Follows a real Rails request from load balancer to response, explains how Puma processes (one request per thread) and multithreading interact with the Global VM Lock and why a blocking binding.pry can stall everything. Derives a capacity formula: processes ≈ arrival_rate × average_total_response_time × 4 (25% operating load), and demonstrates with 5 req/s → ~5 processes keeping queues from growing. Calls out per-thread connection pool sizing and database connection limits (example: 20 max connections) as the real scaling constraint.

AI-written summary · about

  1. 0:00Introduction
  2. 1:03About the talk
  3. 3:19Requests in a Rails app
  4. 7:06Single-threaded example
  5. 9:15Scaling with processes
  6. 12:30Optimal process count
  7. 17:25Buffering traffic variability
  8. 21:44Multi-threaded design
  9. 25:46Global VM lock limits
  10. 29:14Database connection pooling
  11. 33:32Request to response
  12. 35:41Closing notes
~/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.