~/talk

How to scale a Ruby webservice

Talkat LA RubyConf 2012 · 2012-02-02..02-04· [ruby, microservices]
links:none on file
slides:none on file

Claims that Ruby itself isn’t the bottleneck and shows concrete changes: replace Rails with a light Rack stack (we use Sinatra and Rainbows), swap ActiveRecord for Sequel/Yajl, cut classes and GC churn, and use thread pools (16 threads/process) plus persistent connections and HTTP pipelining. Result: per-process memory drops from ~350MB to ~100MB, cluster shrinks from 30 boxes at 66k RPM to 10 boxes handling ~300k RPM, demonstrating the service scales without a rewrite using these tools and limits.

AI-written summary · about

  1. 0:00Introduction
  2. 2:50Ruby is awesome
  3. 3:53What does your typical Ruby app look like
  4. 6:30Server usage
  5. 7:01The typical way
  6. 8:08How to fix it
  7. 8:29Slow down your app
  8. 8:48Reduce program
  9. 15:58Rainbows
  10. 22:05Persistent connections
  11. 23:24Pipelining
  12. 23:56Pipelining example
  13. 25:09Multi threading
  14. 28:04Avoid slow connections
  15. 28:14Avoid too many connections
  16. 29:31Killing slow connections
  17. 30:50Safety principles
  18. 31:26Summary
  19. 33:03Outro
~/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.