2014-09-26 49 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