我尝试找出 Puma 和 Webrick 之间的区别,但并没有找到或满意的答案。因此,有人可以分享相关信息吗?
默认情况下,WEBrick 是单线程、单进程的。这意味着如果两个请求同时到达,第二个请求必须等待第一个请求完成。
处理缓慢 I/O 的最有效方式是使用多线程。工作进程在其内部生成几个工作线程。每个请求由其中一个线程处理,但当该线程暂停进行 I/O 操作(例如等待数据库查询结果)时,另一个线程开始工作。这种快速来回切换充分利用了您的 RAM 限制,并保持 CPU 繁忙。
因此,通过Puma 实现多线程,这也是 Rails 应用程序中默认使用的应用服务器。
rails server webrick
Rails 6.1小更新:
rails server -u webrick [-p NNNN]