2009-05-13 8 views
6

私のレールサイトでMongrelが動作しています。使用されているメモリの量に問題があります。私のruby-binプロセスは約66MBの常駐メモリを使い果たしています。レールで使用されるメモリ量をどのように減らすことができますか?雑貨レールのメモリフットプリントを減らしてパフォーマンスを向上させますか?

この速度でメモリを食べている場合、1台のマシンで多数のレールサーバを稼働させることは、あまり経済的ではありません。私のphp5 fcgiプロセスは15-25 MBの間にあります。

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

答えて

7

最近、Railsアプリケーションのデファクトスタンダードな設定であるPhusion PassengerRuby Enterprise Editionを見ることができます。その目的の1つは、メモリ使用を削減することです。それはまた、雑種の束を持つより簡単です。

+0

+1私は乗客の勧告を+1します。 –

+0

+1 MBARIパッチが含まれているため、REE勧告よりもずっと少ないメモリを消費します。それは1.9も少なくて済む。また、できる限り32ビットOSを実行していることを確認してください。 – rogerdpack

3

あなたが何かのためにApacheに縛られていない場合は、Phusion Passengerでnginxも試してみます。メモリ使用量が心配な方は、nginxのフットプリントがApacheよりも小さいはずです。最新バージョンのPassengerは最小限の頭痛でnginxをダウンロード、コンパイル、インストールします。

1

私は旅客機がデファクトスタンダードだと言うほど遠くまでは行かないが、多くの牽引力を得ている。私はちょうどNginx + Passengerに切り替えました。私たちのルビーアプリ(つまり、Mongrels vs. Passenger)のメモリフットプリントは約450MBから295MBに落ちました。アイドル状態(これは設定可能)の場合、乗客はprocsを殺してしまいますが、交通量が増え、設定したすべてのインスタンスを使用している場合は、それに従ってメモリを使い切ります。

Ruby Enterprise Editionはまだ設定で使用していませんが(主にEngine Yardでまだ利用できないため)、まだメモリフットプリントは小さくなっています。私たちがスイッチを作った最初の主な理由はメモリでしたが、スケールアップやスケールダウンのためのより速く簡単な構成など、その他の利点があります。

3

また、雑多なプロセスをThinに置き換えることもできます。Thinは、より効率的で最近ガベージコレクション(イベントマシンを通じて)にパッチされています。

nginxフロントエンドの後ろにある薄いクラスタを使用して、きめ細かな結果を得ます。

関連する問題