パッセンジャー/ Apache 2.2を使用してサーバー上でredmine(RoRアプリ)を実行しています。乗客とRubyはメモリを使いすぎています。
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
それで、私にとって乗客より良いものは何ですか?
考えてくれてありがとう!
Apache/passengerが生成するRailsプロセスの数を構成できます。サイズ(3つの同時リクエスト)の場合、2 Railsプロセス:
これらをApache構成で設定します。
PassengerMaxPoolSize 2
PassengerMaxInstancesPerApp 2
MaxPoolSizeは、最大で開始できるインスタンスの数を決定し、MaxInstancesPerAppは、各Webアプリが持つことができるインスタンスの数を決定します。
あなたは遊んでみたいかもしれません:
PassengerPoolIdleTime
インスタンスがアンロードされる前にアイドル状態である必要がある秒数を指定します。デフォルトは300秒です。
私は問題なく3つのインスタンスでかなりトラフィックの多いWebアプリケーションを実行しています。
ああ、-Ruby EnterpriseEditionも役立ちます。
Rubyエンタープライズ? http://www.rubyenterpriseedition.com/ を使用していますか?
Ruby Enterprise Edition (Passengerで推奨)を使用するか、Ruby 1.9、これも より高速にロード )を使用します。
Redmine用のApacheプロキシパスを使用してmongrels/mongrel_clusterを実行することに成功しました。それほど多くのパフォーマンスは必要ありません(非常に大きな/遅いプロセスがたくさんあり、その上に外部プロセスを呼び出す傾向があります。ベンチマークの状況で試してみてください。それも死んでいました-セットアップは簡単です。