Amazon EC2上的Ruby on Rails应用程序(Ubuntu 10.10)运行正常,但在服务器上启动Ruby on Rails控制台时速度非常慢。启动Ruby on Rails控制台大约需要3~5分钟。使用top我可以看到Ruby进程正在使用99%CPU时间。这太慢了。为什么呢?
我正在使用Ruby 1.9.2p290和Ruby on Rails 3.1.1。我的Ruby on Rails gemfile.lock
:
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
我还发现服务器上的rake db:migrate
也非常慢,就像Ruby on Rails控制台一样。
答案 0 :(得分:0)
更新:您在编辑我的答案时似乎更新了您的问题。
它可能会开始变慢,因为它可能会交换。 EC2因速度慢而众所周知,根据您为EC2选择的实例大小,Rails应用程序可能会占用您的所有内存。
上一个问题:
LMGTFY:http://rack.rubyforge.org/
您很可能正在使用Passenger来为您的Rails应用程序提供服务,该应用程序将使用机架适配器(和配置)来加载它。
您所看到的是,您的应用程序在Rack后面运行。
如果您认为它占用了大量内存:尝试减少依赖关系,因为您添加的宝石越多,内存中加载的内容就越多。
例如,您可以更改therubyracer(取决于libv8)并将其替换为NodeJS。这样可以减少应用程序的内存占用量。