This post explains the role of Puma as the default web server for Rails applications, detailing how it handles requests and manages processes and threads. It explores the concepts of single mode and cluster mode in Puma, and introduces concurrency and parallelism. The Global VM Lock (GVL) in Ruby and its impact on
Table of contents
How does Puma handle requests?Modes in PumaDefault Puma configuration in a new Rails applicationWeb applications and CPU usageConcurrency vs ParallelismUnderstanding GVL in RubyGVL dictates how many processes we will needThread switchingVisualizing the effect of the GVLWhy can't we increase the thread count to a really high value?What's nextSort: