TL;博士
使用 Puma 或 Passenger 可以解决这个问题,因为它们自己处理线程。我建议尽可能使用最新版本的 Ruby 和 Rails,因为这将最大限度地减少您在升级应用程序时需要做的升级工作。
这是一篇精彩的文章,可以解决您的问题。
总结一下。
Puma 只支持多线程。Phusion Passenger 的开源变体是多进程单线程。Enterprise 变体可以配置为单线程或多线程。
...
Puma 和 Phusion Passenger Enterprise 都可以是混合多进程多线程。也就是说,运行多个多线程进程。混合模式允许 Ruby 和 Python,尽管它们具有全局解释器锁,但可以充分利用所有 CPU 内核。 [1] 在 Puma 中,混合模式被称为“集群”。[1] 只有 MRI 上的情况,JRuby 和 Rubinius 上没有。JRuby 和 Rubinius 完全支持单个进程中的多核线程。
换句话说,Puma 和Passenger 都能够将任何Ruby 实现视为多线程。他们通过使用多个进程和多个线程之间的混合来做到这一点。这仅比简单的多线程重一点。
老实说,我认为这不是您目前需要担心的问题。等着看你的服务器如何处理网站的流量。