2012-02-27 88 views
-2

Amazon EC2(Ubuntu 10.10)のRuby on Railsアプリケーションは正常に動作しますが、サーバー上でRuby on Railsコンソールを起動すると非常に遅くなります。 Ruby on Railsコンソールを起動するのに約3〜5分かかります。 topを使用すると、Rubyプロセスが99%CPU時間を使用していることがわかります。それは遅すぎる。どうして?Ruby on Railsコンソールの起動が遅いのはなぜですか?

私はRuby 1.9.2p290とRuby on Rails 3.1.1を使用しています。 Railsのgemfile.lockのマイルビー:私はまた、サーバー上のrake db:migrateを見つけ

GEM 
    remote: http://rubygems.org/ 
    specs: 
    actionmailer (3.1.1) 
     actionpack (= 3.1.1) 
     mail (~> 2.3.0) 
    actionpack (3.1.1) 
     activemodel (= 3.1.1) 
     activesupport (= 3.1.1) 
     builder (~> 3.0.0) 
     erubis (~> 2.7.0) 
     i18n (~> 0.6) 
     rack (~> 1.3.2) 
     rack-cache (~> 1.1) 
     rack-mount (~> 0.8.2) 
     rack-test (~> 0.6.1) 
     sprockets (~> 2.0.2) 
    active_utils (1.0.2) 
     activesupport (>= 2.3.11) 
     i18n 
    activeadmin (0.4.0) 
     bourbon (>= 1.0.0) 
     devise (>= 1.1.2) 
     fastercsv 
     formtastic (>= 2.0.0) 
     inherited_resources (< 1.3.0) 
     jquery-rails (>= 1.0.0) 
     kaminari (>= 0.13.0) 
     meta_search (>= 0.9.2) 
     rails (>= 3.0.0) 
     sass (>= 3.1.0) 
    activemerchant (1.20.2) 
     active_utils (>= 1.0.2) 
     activesupport (>= 2.3.11) 
     braintree (>= 2.0.0) 
     builder (>= 2.0.0) 
     i18n 
     json (>= 1.5.1) 
     money (<= 3.7.1) 
    activemerchant_patch_for_china (0.1.6) 
     activemerchant (>= 1.4.2) 
    activemodel (3.1.1) 
     activesupport (= 3.1.1) 
     builder (~> 3.0.0) 
     i18n (~> 0.6) 
    activerecord (3.1.1) 
     activemodel (= 3.1.1) 
     activesupport (= 3.1.1) 
     arel (~> 2.2.1) 
     tzinfo (~> 0.3.29) 
    activeresource (3.1.1) 
     activemodel (= 3.1.1) 
     activesupport (= 3.1.1) 
    activesupport (3.1.1) 
     multi_json (~> 1.0) 
    arel (2.2.1) 
    bcrypt-ruby (3.0.1) 
    bourbon (1.3.6) 
     sass (>= 3.1) 
    braintree (2.13.2) 
     builder (>= 2.0.0) 
    builder (3.0.0) 
    devise (2.0.0) 
     bcrypt-ruby (~> 3.0) 
     orm_adapter (~> 0.0.3) 
     railties (~> 3.1) 
     warden (~> 1.1) 
    erubis (2.7.0) 
    execjs (1.2.9) 
     multi_json (~> 1.0) 
    fastercsv (1.5.4) 
    formtastic (2.0.2) 
     rails (~> 3.0) 
    gravatar_image_tag (1.0.0) 
    guid (0.1.1) 
    has_scope (0.5.1) 
    hike (1.2.1) 
    i18n (0.6.0) 
    inherited_resources (1.2.2) 
     has_scope (~> 0.5.0) 
     responders (~> 0.6.0) 
    jquery-rails (1.0.19) 
     railties (~> 3.0) 
     thor (~> 0.14) 
    json (1.6.1) 
    kaminari (0.13.0) 
     actionpack (>= 3.0.0) 
     activesupport (>= 3.0.0) 
     railties (>= 3.0.0) 
    libv8 (3.3.10.4) 
    mail (2.3.0) 
     i18n (>= 0.4.0) 
     mime-types (~> 1.16) 
     treetop (~> 1.4.8) 
    meta_search (1.1.3) 
     actionpack (~> 3.1) 
     activerecord (~> 3.1) 
     activesupport (~> 3.1) 
     polyamorous (~> 0.5.0) 
    mime-types (1.17.2) 
    money (3.7.1) 
     i18n (~> 0.4) 
    multi_json (1.0.3) 
    orm_adapter (0.0.6) 
    polyamorous (0.5.0) 
     activerecord (~> 3.0) 
    polyglot (0.3.3) 
    rack (1.3.5) 
    rack-cache (1.1) 
     rack (>= 0.4) 
    rack-mount (0.8.3) 
     rack (>= 1.0.0) 
    rack-ssl (1.3.2) 
     rack 
    rack-test (0.6.1) 
     rack (>= 1.0) 
    rails (3.1.1) 
     actionmailer (= 3.1.1) 
     actionpack (= 3.1.1) 
     activerecord (= 3.1.1) 
     activeresource (= 3.1.1) 
     activesupport (= 3.1.1) 
     bundler (~> 1.0) 
     railties (= 3.1.1) 
    railties (3.1.1) 
     actionpack (= 3.1.1) 
     activesupport (= 3.1.1) 
     rack-ssl (~> 1.3.2) 
     rake (>= 0.8.7) 
     rdoc (~> 3.4) 
     thor (~> 0.14.6) 
    rake (0.9.2.2) 
    rdoc (3.11) 
     json (~> 1.4) 
    responders (0.6.5) 
    sass (3.1.14) 
    sass-rails (3.1.5) 
     actionpack (~> 3.1.0) 
     railties (~> 3.1.0) 
     sass (~> 3.1.10) 
     tilt (~> 1.3.2) 
    sprockets (2.0.3) 
     hike (~> 1.2) 
     rack (~> 1.0) 
     tilt (~> 1.1, != 1.3.0) 
    sqlite3 (1.3.4) 
    therubyracer (0.9.9) 
     libv8 (~> 3.3.10) 
    thor (0.14.6) 
    tilt (1.3.3) 
    treetop (1.4.10) 
     polyglot 
     polyglot (>= 0.3.1) 
    tzinfo (0.3.31) 
    uglifier (1.1.0) 
     execjs (>= 0.3.0) 
     multi_json (>= 1.0.2) 
    warden (1.1.0) 
     rack (>= 1.0) 
    will_paginate (3.0.2) 

PLATFORMS 
    ruby 

DEPENDENCIES 
    activeadmin 
    activemerchant 
    activemerchant_patch_for_china 
    gravatar_image_tag 
    guid 
    jquery-rails 
    meta_search (>= 1.1.0.pre) 
    rails (= 3.1.1) 
    sass-rails 
    sqlite3 
    therubyracer 
    uglifier (>= 1.0.3) 
    will_paginate 

はただのRuby on Railsのコンソールのように、あまりにも非常に遅くなります。

+0

多分関連している:https://github.com/rubygems/rubygems/issues/99 –

+0

私はなぜあなたが有効な答えをdownvoteしたのか分からない。私はそれを投稿している間にあなたの質問をはっきりと編集しました。更新された応答をお読みください。また、あなたのインスタンスサイズの詳細を提供してください(あなたはしませんでした) –

+0

私はあなたをdownvoteしていません。私は無料のEC2インスタンスを使用しています。 – 51beidanci

答えて

1

更新:私の回答を編集中にあなたの質問が更新されたようです。

スワップする可能性があるため、速度が低下することがあります。 EC2は遅いことで有名で、EC2用に選択したインスタンスのサイズによっては、Railsアプリケーションがすべてのメモリを食べている可能性があります。

前の質問:

LMGTFY:http://rack.rubyforge.org/

ほとんどの場合、あなたがそれをロードするためにラックアダプタ(および構成)を使用するRailsアプリケーションを提供するために旅客を使用しています。

あなたが見ていることは、アプリケーションがRackの背後にあることです。

メモリが大量に消費されていると思われる場合:追加する宝石が多いほど、メモリに読み込まれるアイテムが増えるため、依存関係を減らしてみてください。

例えば、(あなたはlibv8に依存する)rubyracerを変更して、それをNodeJSに置き換えることができます。これにより、アプリケーションのメモリ占有量がわずかに減少します。

+0

ありがとう、ルイス。私は現在、m1.smallインスタンスでEC2を使用しているかなり宝石が多いアプリケーションのステージングセットアップをテストしています。これはかなり小さいです。私は元の更新された投稿の問題を経験しています。あなたがうまく動作することが分かっているインスタンスの最小サイズはありますか? –