我目前正在开展一个项目,我们正在使用NGINX和Phusion Passenger。我已经做了一些关于如何使用不同配置进行最佳优化的研究,但我仍然不明白增加NGINX工作进程的数量如何适应这种情况。似乎优化更大负荷的真正因素是增加乘客流程的数量。
有没有人能够了解1个NGINX工作流程与50个错误乘客流程之间的差异与2个NGINX工作流程之间的区别是50个错误传递过程?
答案 0 :(得分:6)
我试一试.. 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/