2014-09-26 42 views
3

我目前正在开发一个项目,在该项目中我们使用NGINX和Phusion Passenger。我已经做了一些关于如何以不同配置进行最佳优化的研究,但我仍不明白如何增加NGINX工作进程的数量。看来,为更大负载进行优化的真正因素是增加乘客过程的数量。NGINX Worker使用Passenger时的角色

难道有人可以对一个NGINX工作流程与50个phusion乘客流程vs 2个NGINX工作流程与50个phusion passnger流程有什么区别吗?

回答

4

我会试一试..nginx工作人员和乘客工作人员之间的差异很大。你绝对不想拥有比核心更多的nginx工作者,因为这只会导致空闲的进程飞来飞去。所以如果你有一个可能有4个内核的cpu,给nginx 4个工作者。就那么简单。

现在谈到乘客时,整个事情变得更加复杂。你必须考虑你的应用程序是否消耗了大量的CPU时间(例如计算)或者做了很多I/O(例如数据库操作,文件填写,你的名字)并适当地配置乘客。

计算:将工作进程和线程数限制为核心数或其倍数 - 可能是核心数的2到3倍。 I/O:给它尽可能多的进程作为核心,但尽可能多的线程。

大约有调整nginx的和/或乘客使用公式和配置信息有些写得很好的博客文章:

http://www.alfajango.com/blog/performance-tuning-for-phusion-passenger-an-introduction/ http://blog.phusion.nl/2013/03/12/tuning-phusion-passengers-concurrency-settings/

+2

注意,在超线程的情况下(英特尔CPU),你应该统计虚拟内核。所以在一个带有超线程的四核处理器上,有8个nginx工作者。 – 2014-10-07 14:39:10