Vps

在 Apache + Passenger 上執行 Ruby on Rails 應用程序 == 佔用大量記憶體

  • January 10, 2010

我正在使用乘客/Apache 2.2 在我的伺服器上執行 redmine(一個 RoR 應用程序)。乘客和紅寶石正在使用太多的記憶體。

有沒有更有效的方式來執行 redmine/ruby?

我只需要支持六個 redmine 使用者。我想繼續使用 Apache,但我願意接受所有不是“使用 nginx/lighttpd”的建議。

(以下數據來自 512MB VPS,因此 Ruby 僅用於 redmine 超過 128MB)

user ....... %mem   ....... process
-----------------------------------
www-data ... 13.6   0:00.65 ruby1.8
www-data ... 12.2   0:04.86 ruby1.8

www-data ...  9.4   0:04.15 apache2
www-data ...  9.0   0:13.94 apache2
www-data ...  3.2   0:00.27 apache2

root     ...  2.5   0:00.23 apache2 
root     ...  1.9   0:01.19 ruby1.8 

那麼,有什麼比Passenger更適合我的呢?

謝謝你的想法!!

您可以配置 Apache/passenger 生成的 Rails 程序的數量。對於您的大小(3 個並發請求),您應該可以使用 2 個 rails 程序:

在你的 apache 配置中設置這些:

PassengerMaxPoolSize 2
PassengerMaxInstancesPerApp 2

MaxPoolSize 決定了最多可以啟動多少個實例,MaxInstancesPerApp 決定了每個 web-app 可以擁有多少個實例。

你可能想玩:

PassengerPoolIdleTime 

指定實例在解除安裝之前必須處於空閒狀態的秒數。預設值為 300 秒。

我執行 3 個實例的高流量 Web 應用程序沒有任何問題。

哦,而且——Ruby 企業版也有幫助。

引用自:https://serverfault.com/questions/15350