2011-09-07 10 views
7

数週間前にLionにアップグレードして、Ruby on Rails環境に完全に惑わされました。私はRVM、さまざまなルビーバージョンをインストールしており、それに対する解決策を見つけることができないようです...私はそれがライオンにアップグレードできる最悪の決定の1つであったと思います。それは私に問題をもたらしました。OSX Lionにアップグレードした後のRubyプロセスでのメモリリーク

とにかく、自分のアプリケーションのページをレンダリングすると(配備されたサーバーでもローカルにも他のマシンでもうまく機能する)、ルビープロセスのメモリが20-30MBに増加します。だから、しばらくすると、私のルビープロセスが2GBのメモリに達し、私のコンピュータはもはや使えないと想像することができます。

私はライオンにアップグレードする際に問題を抱えている多くの人を見てきましたが、私の場合の解決策を見つけることができませんでした。

いずれも同じ問題がありましたか?どのように私はこの問題を解決しようとすることができます任意のアイデア?

おかげ

+0

多分try valgrind? – rogerdpack

+0

同じ問題があります。 Pol、解決策を見つけましたか? –

+0

私は同じ問題があり、解決策を探しています。 –

答えて

0

あなたは問題の底に取得するmemprof宝石(はもはやを維持し、バージョン1.8.7の上のRubyのために動作しません)と memprof.com (リンク切れ)を使用することができます。

また、デフォルトのWebrickの代わりにPassenger、UnicornまたはThinを使用して実験することで、動作が異なるかどうかを確認できます。

0

どのようにメモリリークを修正するのか分かりませんが、メモリリークを抑止し、さらにトラブルシューティングを行う方法を提案できます。

Dockerを学ぼうと思っているならば、あなたの開発環境をDockerコンテナ内に含めることができます.Dagerの共有フォルダと同様に、ローカルマシン上のコードにアクセスすることができます。

実行するDockerコンテナを実行するときに、コンテナが使用できるメモリ量の制限を指定できます。 rails serverプロセスがクラッシュしてコンテナを停止する可能性がありますが、少なくともマシンを再起動する必要はありません。

多分、この問題の深刻なトラブルシューティングのための余裕を与えるでしょう。

Docker Run Referenceについては、「CPUとメモリの実行時の制約」を参照してください。

関連する問題