![](/img/trans.png)
[英]How do I mount a standalone Rack app into a Ruby On Rails app?
[英]Ruby rack app on 1 CPU - how many processes should I run?
我是Ruby网络应用程序的新手(来自java)。 我有VPS,有1个CPU和2GB的RAM,想玩一些rails / sinatra的东西。
我正在使用Ruby 2.1.0 MRI如何将CPU数量映射到我需要运行的Web服务器进程数量? 我使用puma作为Web服务器并设置了默认线程(0,16)。 但是我注意到还有“工作者”选项,它会让另一个进程更好地处理多个请求。
我是否正确理解对于这样的设置(1个CPU),运行2个Web服务器进程没有意义? 唯一合理的设置是1个进程与线程?
哦,现在这是一个非常大的问题!
进程和线程的数量不一定与CPU的数量相关联。 更多的是可用内存量,并发请求数量以及正在进行的“锁定”内容量。
如果您将有长时间运行的请求阻止其他请求,那么拥有其他进程可以帮助解决这个问题。 使用单个CPU仍然可以有多个进程。
Ruby中有许多不同的服务器以不同的方式处理扩展,Unicorn,Puma,Thin就是其中的一部分。 对Unicorn vs Puma vs Thin进行搜索可以在该主题上发布一些有用的博客文章。
这是一对夫妇
http://ylan.segal-family.com/blog/2012/08/20/better-performance-on-heroku-thins-vs-unicorn-vs-puma/ https://www.engineyard.com/articles/ rails-server https://www.ruby-forum.com/topic/1822610
以及关于Ruby并发性的一些信息http://merbist.com/2011/02/22/concurrency-in-ruby-explained/
TL:DR答案是,这取决于!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.