postgreSQLのラックスペースでRailsアプリを実行しています。
本当に遅いです。
特別なリクエストの場合、応答に最大4秒かかります
新しい遺物をインストールしました。
たとえば、一部のコントローラーのインデックスアクションが最も遅いことがわかります。それらは本当に単純で、いくつかの発見があります。
だから、何がそれを遅くするのか本当にわかりません。
パフォーマンスの問題を見つけることができるいくつかの宝石について皆さんが言及できるでしょうか?
私は、データベースへのn + 1クエリを見つけるのに役立つ箇条書きについて知っていますが、それは私の問題ではありません。
リクエストに応じて、プロジェクトコントローラーのインデックスアクションを追加します(平均4000ミリ秒の応答時間)
def index
@firm = current_firm
@projects = current_user.projects.is_active
@customers = @firm.customers
@project = Project.new
@todo = Todo.new
end
is_activeメソッドはモデルのスコープです
scope :is_active, where(["active = ?", true])
アプリケーションコントローラーから、いくつかのヘルパーとbefore_filtersがあります。そのうちの1つが問題(または他の何か)である可能性があります。そのため、パフォーマンスの問題を追跡するためのツールが必要です。
私が見るproduction.logを見て更新してください
Rendered logs/_list_header.html.erb (0.3ms)
Rendered logs/_log.html.erb (127.7ms)
Rendered private/log_range.js.erb (721.2ms)
Completed 200 OK in 836ms (Views: 733.2ms | ActiveRecord: 43.9ms)
Processing by ProjectsController#index as HTML
Rendered projects/_index.html.erb (4149.8ms)
Rendered projects/index.html.erb within layouts/application (4157.0ms)
Rendered layouts/_header.html.erb (0.3ms)
Completed 200 OK in 6682ms (Views: 4199.6ms | ActiveRecord: 457.0ms)
Processing by LogsController#stop_tracking as JS
Parameters: xxxxx
Rendered logs/_tracking_partial.html.erb (121.1ms)
Rendered logs/_start_tracking.html.erb (6877.9ms)
Rendered logs/_log.html.erb (43.0ms)
Rendered logs/stop_tracking.js.erb (7224.0ms)
Completed 200 OK in 9968ms (Views: 7617.2ms | ActiveRecord: 455.3ms)
最後のものを見てください。ビューとjsのレンダリングに多くの時間が費やされました。これを引き起こす可能性があるもの。ビューに検索結果はありません。コントローラからインスタンス変数を使用するだけです。また、データベースには20未満のエントリがあります。これは、これらのビューにアクセスするコンピューターのインターネット接続が遅いことが原因である可能性がありますか?