6

私のレールサイトはMongrelを実行していますが、使用されているメモリの量に問題があります。私のruby-binプロセスは、約66MBの常駐メモリを使用しています。Railsが使用するメモリの量を減らすにはどうすればよいですか?

この速度でメモリを消費している場合、1台のマシンで多くのRailsサーバーを実行することはあまり経済的ではありません。私のphp5fcgiプロセスは15〜25MBの間にあります。

私はRoRにかなり慣れていませんが、JRubyを使用すると役に立ちますか?メモリフットプリントの削減とパフォーマンスの向上に役立つコメントは大歓迎です。

4

4 に答える 4

7

Phusion PassengerRuby Enterprise Editionを見ることができます。これは、最近の Rails アプリのデファクト スタンダード セットアップです。その目的の 1 つは、メモリ使用量を削減することです。また、雑種をたくさん持つよりも簡単です。

于 2009-05-13T19:51:26.190 に答える
3

また、雑種犬のプロセスを、より効率的で、最近ガベージコレクション(イベントマシンを介して)にパッチが適用されたThinに置き換えて、さらに改善することもできます。

nginxフロントエンドの背後にあるシンクラスターを使用すると、良好な結果が得られます。

于 2009-05-14T11:48:01.850 に答える
3

他の理由でApacheに縛られていない場合は、Phusion Passengerでnginxも試してください。メモリ使用量が気になる場合は、nginx からのフットプリントが apache よりも小さいことに気付くはずです。Passenger の最新バージョンは、頭痛を最小限に抑えて nginx をダウンロード、コンパイル、およびインストールします。

于 2009-05-13T20:59:44.597 に答える
1

Passenger がデファクト スタンダードであるとまでは言いませんが、多くの注目を集めています。Nginx+Passenger に切り替えたところ、Ruby アプリ (つまり、Mongrels と Passenger) のメモリ フットプリントが約 450MB から 295MB に減少しました。Passenger がアイドル状態の場合 (これは構成可能)、Proc を強制終了するため、ドロップが少なくなる可能性がありますが、もちろん、トラフィックを取得していて、構成したすべてのインスタンスを使用している場合、それに応じてメモリを使い果たします。 .

設定でまだ Ruby Enterprise Edition を使用していないことに注意してください (主な理由は、Engine Yard でまだ利用できないためです)。切り替えを行った最初の最大の理由はメモリでしたが、スケールアップまたはスケールダウンのための構成がより迅速かつ簡単になるなど、他の利点もあります。

于 2009-05-14T07:33:58.060 に答える