我一直在阅读有关不同的rails应用程序服务器如何工作一段时间的信息,有些事情让我感到困惑,可能是因为我在这个领域缺乏知识。无论如何,以下事情让我困惑:
Puma
服务器在其自述文件中有关于其clustered mode
个工作人员编号的以下行:
在提供本机线程的ruby实现上,您应该调整此数字以匹配可用内核数
因此,如果我拥有2个内核并使用rubinius
作为ruby实现,那么考虑到rubinius
使用本机线程并且没有使用{I},我是否还应该使用多个进程锁,因此它使用所有CPU核心,即使有1个进程?
我理解,如果我升级到具有更多内核和内存的计算机,我只需要增加唯一进程的线程池,如果它不正确,请向我解释。
我已经阅读了一些关于使用Server-Sent Events
和puma
的文章,据我了解,由于浏览器保持连接打开,因此阻止了美洲国家/地区的线程,所以如果我有16个线程和16个人正在使用我的网站,然后第17个将不得不等待这16个叶子中的一个,所以它可以连接?这不是很有效,是吗?或者我错过了什么?
如果我有一台带有3Gb RAM的1核机器,只是出于问题的原因,使用unicorn
作为我的应用程序服务器,1名工作人员占用300 MB内存,其CPU使用率为微不足道,我应该有多少工人?有人说工作人员的数量应该等于核心数量,但是如果我将工人数量设置为7,因为我有足够的RAM(因为我有足够的RAM),它将能够处理7个并发请求,赢得& #39;是吗?那么这只是内存和CPU使用率以及RAM量的问题吗?或者我错过了什么?