Originally designed as a server for Rubinius, Puma also works well with Ruby (MRI) and JRuby. On MRI, there is a Global VM Lock (GVL) that ensures only one thread can run Ruby code at a time. But if ...
If the WEB_CONCURRENCY environment variable is set to "auto" and the concurrent-ruby gem is available in your application, Puma will set the worker process count to the result of available processors.