質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

タイムアウト

タイムアウトはイベント発生から完了までに掛かる経過時間に対する一定の待ち時間を指します。また、特定の時間が経過された場合に発生するイベントを指すこともあります。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

1回答

3328閲覧

Rails4で何故かレンダリングに時間がかかりすぎタイムアウトしてしまう。

HidenobuSakai

総合スコア11

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

タイムアウト

タイムアウトはイベント発生から完了までに掛かる経過時間に対する一定の待ち時間を指します。また、特定の時間が経過された場合に発生するイベントを指すこともあります。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2016/05/04 10:13

編集2016/05/04 14:14

Ruby on Rails4.2.5 で開発をしているのですが、突然localhostにアクセスしてもタイムアウトしてしまうようになってしまいました。ログを見てみるとデータベスの接続やキャッシュとかは何msなのですが、レンダリングに異常なほど時間がかかっていて、それでタイムアウトしてしまいます。

今までは正常なレスポンスタイムで描画していたのですが、突然このようにタイムアウトしてしまうほど時間がかかってしまった原因がわかりません。わかる方いましたらご教授お願いします。

####環境

  • unciron 5.0.1
  • rails 4.2.5
  • ruby 2.2.3
  • slim 3.0.6
  • slim-rails 3.0.1

bash

1source=rack-timeout id=af394e65fcb94164bd551f8e325d478f timeout=25000ms service=33170ms state=active 2source=rack-timeout id=af394e65fcb94164bd551f8e325d478f timeout=25000ms service=33216ms state=timed_out 3 Rendered evideos/show.html.slim within layouts/full (33171.4ms) 4Completed 500 Internal Server Error in 33207ms (ActiveRecord: 3.3ms) 5 6Rack::Timeout::RequestTimeoutException - Request ran for longer than 25000ms: 7 sprockets (3.5.2) lib/sprockets/cache/file_store.rb:101:in `set' 8 sprockets (3.5.2) lib/sprockets/cache.rb:210:in `set' 9 sprockets (3.5.2) lib/sprockets/cache.rb:136:in `set' 10 sprockets (3.5.2) lib/sprockets/loader.rb:244:in `store_asset' 11 ... 12 sprockets-rails (3.0.4) lib/sprockets/rails/helper.rb:229:in `block in resolve_asset' 13 sprockets-rails (3.0.4) lib/sprockets/rails/helper.rb:228:in `resolve_asset' 14 sprockets-rails (3.0.4) lib/sprockets/rails/helper.rb:215:in `lookup_debug_asset' 15 sprockets-rails (3.0.4) lib/sprockets/rails/helper.rb:128:in `block in javascript_include_tag' 16 sprockets-rails (3.0.4) lib/sprockets/rails/helper.rb:127:in `javascript_include_tag' 17 app/views/evideos/show.html.slim:7:in `block in _app_views_evideos_show_html_slim___135235524447124923_70234700341860' 18 actionview (4.2.5) lib/action_view/helpers/capture_helper.rb:38:in `block in capture' 19 actionview (4.2.5) lib/action_view/helpers/capture_helper.rb:202:in `with_output_buffer' 20 actionview (4.2.5) lib/action_view/helpers/capture_helper.rb:38:in `capture' 21 actionview (4.2.5) lib/action_view/helpers/capture_helper.rb:152:in `content_for' 22 app/views/evideos/show.html.slim:6:in `_app_views_evideos_show_html_slim___135235524447124923_70234700341860' 23 actionview (4.2.5) lib/action_view/template.rb:145:in `block in render' 24 activesupport (4.2.5) lib/active_support/notifications.rb:166:in `instrument' 25 actionview (4.2.5) lib/action_view/template.rb:333:in `instrument' 26 actionview (4.2.5) lib/action_view/template.rb:143:in `render' 27 actionview (4.2.5) lib/action_view/rendering.rb:83:in `render_to_body' 28 activesupport (4.2.5) lib/active_support/core_ext/benchmark.rb:12:in `block in ms' 29 actionpack (4.2.5) lib/action_controller/metal/instrumentation.rb:43:in `render' 30 meta-tags (2.1.0) lib/meta_tags/controller_helper.rb:26:in `render_with_meta_tags' 31 app/controllers/evideos_controller.rb:77:in `show' 32 ... 33 actionpack (4.2.5) lib/action_dispatch/middleware/params_parser.rb:27:in `call' 34 actionpack (4.2.5) lib/action_dispatch/middleware/flash.rb:260:in `call' 35 rack (1.6.4) lib/rack/session/abstract/id.rb:225:in `context' 36 rack (1.6.4) lib/rack/session/abstract/id.rb:220:in `call' 37 actionpack (4.2.5) lib/action_dispatch/middleware/cookies.rb:560:in `call' 38 activerecord (4.2.5) lib/active_record/query_cache.rb:36:in `call' 39 activerecord (4.2.5) lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in `call' 40 activerecord (4.2.5) lib/active_record/migration.rb:377:in `call' 41 actionpack (4.2.5) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call' 42 activesupport (4.2.5) lib/active_support/callbacks.rb:88:in `__run_callbacks__' 43 activesupport (4.2.5) lib/active_support/callbacks.rb:778:in `_run_call_callbacks' 44 activesupport (4.2.5) lib/active_support/callbacks.rb:81:in `run_callbacks' 45 actionpack (4.2.5) lib/action_dispatch/middleware/callbacks.rb:27:in `call' 46 actionpack (4.2.5) lib/action_dispatch/middleware/reloader.rb:73:in `call' 47 actionpack (4.2.5) lib/action_dispatch/middleware/remote_ip.rb:78:in `call' 48 better_errors (2.1.1) lib/better_errors/middleware.rb:84:in `protected_app_call' 49 better_errors (2.1.1) lib/better_errors/middleware.rb:79:in `better_errors_call' 50 better_errors (2.1.1) lib/better_errors/middleware.rb:57:in `call' 51 actionpack (4.2.5) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call' 52 web-console (3.1.1) lib/web_console/middleware.rb:131:in `call_app' 53 web-console (3.1.1) lib/web_console/middleware.rb:28:in `block in call' 54 web-console (3.1.1) lib/web_console/middleware.rb:18:in `call' 55 actionpack (4.2.5) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' 56 railties (4.2.5) lib/rails/rack/logger.rb:38:in `call_app' 57 railties (4.2.5) lib/rails/rack/logger.rb:22:in `call' 58 quiet_assets (1.1.0) lib/quiet_assets.rb:27:in `call_with_quiet_assets' 59 request_store (1.3.0) lib/request_store/middleware.rb:9:in `call' 60 actionpack (4.2.5) lib/action_dispatch/middleware/request_id.rb:21:in `call' 61 rack (1.6.4) lib/rack/methodoverride.rb:22:in `call' 62 rack (1.6.4) lib/rack/runtime.rb:18:in `call' 63 rack-timeout (0.3.2) lib/rack/timeout/core.rb:125:in `block in call' 64 rack-timeout (0.3.2) lib/rack/timeout/support/timeout.rb:19:in `timeout' 65 rack-timeout (0.3.2) lib/rack/timeout/core.rb:124:in `call' 66 activesupport (4.2.5) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call' 67 rack (1.6.4) lib/rack/lock.rb:17:in `call' 68 actionpack (4.2.5) lib/action_dispatch/middleware/static.rb:116:in `call' 69 rack (1.6.4) lib/rack/sendfile.rb:113:in `call' 70 rack-mini-profiler (0.9.8) lib/mini_profiler/profiler.rb:282:in `call' 71 railties (4.2.5) lib/rails/engine.rb:518:in `call' 72 railties (4.2.5) lib/rails/application.rb:165:in `call' 73 rack-cors (0.3.0) lib/rack/cors.rb:72:in `call' 74 rack (1.6.4) lib/rack/lock.rb:17:in `call' 75 rack (1.6.4) lib/rack/content_length.rb:15:in `call' 76 rack (1.6.4) lib/rack/handler/webrick.rb:88:in `service' 77 /Users/sakaihidenobu/.rbenv/versions/2.2.3/lib/ruby/2.2.0/webrick/httpserver.rb:138:in `service' 78 /Users/sakaihidenobu/.rbenv/versions/2.2.3/lib/ruby/2.2.0/webrick/httpserver.rb:94:in `run' 79 /Users/sakaihidenobu/.rbenv/versions/2.2.3/lib/ruby/2.2.0/webrick/server.rb:294:in `block in start_thread' 80 81source=rack-timeout id=af394e65fcb94164bd551f8e325d478f timeout=25000ms service=33298ms state=completed 82source=rack-timeout id=41ede62d2caf4d887d50593db080aa6a timeout=25000ms state=ready 83source=rack-timeout id=41ede62d2caf4d887d50593db080aa6a timeout=25000ms service=0ms state=active 84 85source=rack-timeout id=41ede62d2caf4d887d50593db080aa6a timeout=25000ms service=156ms state=completed

また、今回のレンダリングにとてつもなく時間をかけているレイアウトです。

slim

1doctype html 2head 3 = include_gon 4 = stylesheet_link_tag "application", media: "all", :debug => true 5 = javascript_include_tag "application", :debug => true 6 = csrf_meta_tags 7 - if content_for(:page_title) 8 - set_meta_tags site: 'aaaaaa', title: yield(:page_title), reverse: true 9 - else 10 - set_meta_tags site: 'aaaaaa' 11 = display_meta_tags default_meta_tags 12 = favicon_link_tag('favicon.ico') 13 == yield :head 14 = analytics_init if Rails.env.production? 15.wrap 16 body class="#{controller_name} #{action_name}" 17 #fb-root 18 javascript: 19 (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.async = true; js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v2.5&appId=1830645683829206"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); 20 #loading 21 = image_tag "loading.gif", size: '43x11', alt: 'loading...' 22 .countatiner-fluid 23 .row 24 .col-sm-12.col-md-12 style="padding:0;margin:0" 25 header.clearfix 26 == render 'templates/header' 27 == render 'templates/category' 28 == yield :header 29 .col-sm-12.col-md-12.col-lg-offset-1.col-lg-10 30 = alert_or_notice alert, notice 31 aritlce.main 32 == yield 33 .col-sm-12.col-md-12 34 footer 35 == render 'templates/footer' 36 #pagetop.pagetop 37 i.glyphicon.glyphicon-chevron-up

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

######config/environment/development.rb

ruby

1 config.assets.compress = true 2 config.assets.js_compressor = :uglifier 3 config.assets.css_compressor = :sass 4 config.assets.debug = true

としていたが、開発環境では1リクエストごとに動的にコンパイルしているらしいので、これが原因でページ遷移するたびに異常に時間がかかっていた。
この設定の

ruby

1 config.assets.debug = false

に変更することで、最初のリクエスト時にassetsをキャッシュして、それ以後はキャッシュしたjsとcssを使うようになったので、正常なレスポンスタイムに戻りました。

参考

Rails3?のassets precompileの日本語訳
やっぱりassets precompileとかもしっかりと理解しないといけないなと改めて実感しました。

投稿2016/05/04 14:25

HidenobuSakai

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問