2011-12-22 5 views
2

私のherokuログによれば、私のレールアプリは平均1700〜2500ミリ秒のリクエストを処理しています(これは往復全体です)。私は自分のアプリケーションのプロファイルに新しい遺物を使いました。その要求の大半は自分のデータベースではなく、New Relicの "Web Transaction"セクションに費やされているようです。 "コントローラ"カテゴリは要求の中で最も遅くなる傾向があり、その後に "データベース"カテゴリの "SQL - SELECT"セグメントが続くようです。私のレールアプリケーションにパフォーマンスのボトルネックの原因となっているものを特定できません

私のコントローラーでパフォーマンスのボトルネックが発生する可能性があるとは思っていませんし、プレミアムバージョンを支払わずに新しい遺物に深く浸ることもできません。私は最近、アプリケーションの外部キーにインデックスを追加しましたが、これはデータベースの応答時間の点で大きな違いはなかったと思います。

私は、これらのボトルネックの原因を突き止めるのに十分な情報ではないことを知っていますが、私はどこから始めようと、何を提供するのかさえ分かりません。これらの問題を診断するためにどのような情報が必要か教えてくれれば助かります。

+0

New Relicが役に立たない場合は、[Rackamole](http://www.rackamole.com/home/screens)を使用してパフォーマンス上の問題を発見したという良いレポートを聞いたことがあります。 – sarnold

+0

最善の方法は、遅いとプロファイリングされたアクションのソースコードを投稿することです。また、多くのループを行っている場合は、ボトルネックが表示される可能性があることを覚えておいてください。 –

+0

@SrdjanPejicそうかもしれない。私は私の見解では多くのループや関連付けをしています。これらの関連付けをモデル内のインスタンスメソッドに移動すると、パフォーマンスが向上しますか? –

答えて

2

Rubyの新しいRelicには、無料のスタンドアロンデベロッパーモードが含まれています。 RAILS_ENV = developmentで動作している場合、New Relic gemは各リクエストの詳細なプロファイルを表示するルートを追加します。アプリを数回押してからhttp://localhost:3000/newrelicにアクセスしてください。

プロファイルには、各SQLクエリの時間とコードのコンポーネントが含まれます。 custom instrumentationを使用すると、大量のコードを小さなセグメント(または個々のメソッド)に分解して別々に取得することができます。この機能は、有料のProバージョンで得られるトランザクションのトレースとよく似ています。大きな違いの1つは、プロダクションで無料の開発モードを実行したくないということです。

(フル開示:私はNRのために働く多くの人々は、しかし、無料のdevのモードについて知っているので、私はそれが言及する価値があったと思っていません。)

あなたが潜在的にJavascriptのロードのようなものでも、より早く表示させることができhead.jsは、JSファイルを非同期に並行して読み込みます。

+0

ああ、面白いです。ありがとう!ところで、私は現在、HerokuアドオンとしてNew Relicを実行しているので、開発中にアクセスすることはできません。私はそれを宝石として束ねるべきですか?これがNRのヒロクアドオンに悪影響を及ぼしますか? –

+0

シダースタックを使用していますか? newrelic_rpmの宝石はあなたのGemfileにあります。 Bambooを使用している場合は、プラグインがインストールされます。いずれにしても、自分のマシンでサイトを実行しているときにNR devモードにアクセスできます。厳密にはローカルで、newrelic.comとは通信しません。 – rkb

+0

私はherokuでBambooを使用していますが、私は現地の開発サイトでNR開発モードを持っていないようです。 '/ newrelic'ルートは終了しません。私はherokuのコマンドラインインターフェイスを使ってNew Relicアドオンをインストールしました。私は決して開発用のコードを開発することはありません。それがローカルマシン上に存在しないという意味になります。私は何が欠けていますか? –

0

は、このスライドショーを見てみましょう:

http://www.slideshare.net/drhenner/optimize-the-obvious-7636674

は十分ではないかもしれませんが、それはいくつかの共通の障害を通過します。

少しdeaperはこのビデオを見てみましょう掘る:http://windycityrails.org/videos2011/#2

それは長いですが、見て多くの場所を提供します。

CDNを使用していますか?

+0

ありがとう、これは素晴らしいです。いいえ、現在、私の資産にCDNを使用していません。 –

関連する問題