我目前正在做一个项目,我们将 NGINX 与 Phusion Passenger 一起使用。我已经对如何使用不同的配置进行最佳优化进行了一些研究,但我仍然不明白增加 NGINX 工作进程的数量如何适应这种情况。似乎优化更大负载的真正因素是增加乘客流程的数量。
谁能阐明拥有 1 个 NGINX 工作进程和 50 个 phusion 乘客进程与 2 个 NGINX 工作进程和 50 个 phusion 乘客进程之间的区别?
我目前正在做一个项目,我们将 NGINX 与 Phusion Passenger 一起使用。我已经对如何使用不同的配置进行最佳优化进行了一些研究,但我仍然不明白增加 NGINX 工作进程的数量如何适应这种情况。似乎优化更大负载的真正因素是增加乘客流程的数量。
谁能阐明拥有 1 个 NGINX 工作进程和 50 个 phusion 乘客进程与 2 个 NGINX 工作进程和 50 个 phusion 乘客进程之间的区别?
我会试一试.. nginx 工作人员和乘客工作人员之间存在很大差异。您绝对不希望拥有比核心更多的 nginx 工作人员,因为这只会导致空闲进程到处乱跑。所以如果你有一个可能有 4 个核心的 cpu,给 nginx 4 个 worker。就那么简单。
现在,当涉及到客运工人时,整个事情变得有点复杂了。您必须考虑您的应用程序是否消耗大量 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-设置/