このチュートリアルは、New Relic を使用した WordPress パフォーマンスのモニタリングで開始したところから継続します。ここでは、WordPress のパフォーマンスの概念的な概要を説明し、New Relic を使用して自分のサイトのパフォーマンスをチェックする手順を説明します。
「Varnish と W3 Total Cache を使用した WordPress の最適化」チュートリアルからここに来た場合は、すでに非常に最適化された WordPress 基盤を持っています。そうでない場合は、記事に戻って確認してください。
WordPress は、小規模な個人ブログから大手メディア組織の大規模 Web サイトまでをサポートできる強力なオープンソース ブログ システムです。しかし、実際に WordPress を適切に実行し、コスト効率よく適切に拡張するには、非常に複雑な作業が必要です。
New Relic のパフォーマンス監視サービスは、WordPress 設定がスムーズかつ効率的に実行され続けることを保証する優れた方法を提供します。
注: New Relic は、自社のサービスは、仮想サーバーや共有サーバー (多くのクラウドベースのプロバイダーが提供するものなど) ではなく、専用サーバー上で WordPress を最適化するために使用するのが最適であると警告しています。共有ホスティングで WordPress を実行している場合、専用サーバーで実行されている Web サイトの場合ほど New Relic は役に立たない可能性があります。
このパフォーマンス ガイドに入る前に New Relic について詳しく知りたい場合は、Tuts がサービスに関するさまざまな記事を提供しています。
2013 年、無料の W3 Total Cache WordPress プラグインの作成者である Frederick Townes は、New Relic のブログ記事「Optimizing WordPress Performance with New Relic」で、考慮する必要があるパフォーマンスの側面について説明しました。これは良い要約ですので、レビューしてみます。
タウンズは、私たちが注力する必要がある中心的な領域を強調しました:
1.ディスクのパフォーマンス。 非共有ローカル ディスクは、常に最も安定した信頼性の高いパフォーマンスを提供します。たとえば、SSD ドライブまたは高速ハード ドライブを搭載したコンソールを使用するのが理想的です。
2. MySQLクエリキャッシュ。 クエリ キャッシュは、一般的なデータベース クエリの結果を保存し、繰り返し実行することなくすぐに結果を返すことができます。 Townes 氏は、データベース構成を最適化するために MySQLTuner を実行することを推奨しています。
3. WordPress テーマおよびプラグインによるクエリの使用。 WordPress はそのまま設定を行っても問題なく動作しますが、サードパーティのプラグインやテーマを追加すると、パフォーマンスの問題を引き起こすさまざまなエラー コードが発生する可能性があります。
4. WordPress テーマとプラグインのファイル サイズ。 ファイル サイズとファイル数を削減すると (したがって HTTP トランザクションが削減されます)、ユーザーの Web サイト エクスペリエンスに大きな影響を与える可能性があります。残念ながら、すべての Cascading Style Sheets (CSS) または JavaScript (JS) を簡単に統合して最小化できるわけではありません。
5.最適化された PHP ですが、比較的遅いです。将来的には、より高速なバージョンの PHP (HHVM など) が WordPress で動作する可能性がありますが、このタスクではまだ安定していないことは理解しています。一方、Townes 氏は一連の提案を行っています。スクリプトのメモリ使用量を減らす、オートロードを使用する、メモリを使用する、ループを回避する、実行時間を短縮する、ディスク呼び出しとメモリ使用量を減らすために開いているファイルの数を最小限に抑える、 インクルードを使用するなどです。
include_once と
require_once の代わりに、
と require
を使用します。
6. PHP コード用のオープンソース キャッシュ フレームワークである APC などのオペコード キャッシュを使用します。 「APC は、コードの解釈された (実行可能) バージョンをメモリ内に保持するため、APC へのリクエストを再解釈する必要がなくなります。」と Townes 氏は述べています。
「WordPress のオブジェクト キャッシュは、多くの魔法が起こる場所です。WordPress は、ページ リクエストを処理するときにさまざまなオブジェクト グループを生成します。これらのグループは複数の目的に役立ち、WordPress の使用方法に応じて非常に重要です。たとえば、memcached または APC を使用します。バックエンドはパフォーマンスの向上を実現するために永続ストレージ オブジェクトを保存します。"Townes の W3 Total Cache はこれをページ キャッシュ レベルで実装し、PHP が特定のページのコンテンツの一部を生成できる一方、変更されていないページの大部分はキャッシュされて再生成されない状況を可能にします。
"W3TC では、複数のアプリケーション サーバーから高速アクセスできるように設計された memcached など、MySQL 以外のデータ ストアを選択できます。したがって、各ページ リクエストで訪問者に関する情報や対応する情報を取得する必要はありません。動的要素については、MySQL はテンプレートの動的部分のみに焦点を当て (および調整) できるようになりました。"
タウンズ氏は、「フラグメント キャッシュにより、実行時間が桁違いに短縮されます。」と述べています。 7. ページ キャッシュを使用します。
典型的な Web サイトを拡張するための最も便利な手法は、ページ キャッシュです。ページリクエストごとにスタック全体 (WordPress、テーマ、プラグイン、HTML、MySQL) にアクセスする代わりに、Web キャッシュ (通常はメモリ) から静的 HTML を取得します。キャッシュされていない WordPress サイトのトラフィック スケーリングは数秒でサイトをシャットダウンできますが、メモリ キャッシュ内の事前に作成された HTML ファイルのトラフィック スケーリングは大規模にスケールする可能性があります。 Townes 氏は次のように述べています。「通常、リバース プロキシは、Web アプリケーションとパブリック インターネットの間にキャッシュを提供します。その目的は、その背後にある Web サーバーの負荷を軽減することです。リバース プロキシは、基礎となるアプリケーションによって生成されたコンテンツを返すように最適化されています。 Varnish、Nginx、さらには Apache も、リバース プロキシ機能を提供するように構成できます。」 私は WordPress を拡張するために、Apache および W3 Total Cache で Varnish を使用することが最も多いです。これらの構成に興味がある場合は、「Optimizing WordPress with Varnish and W3 Total Cache (Tuts)」を参照してください。 8.コンテンツ配信ネットワーク (CDN) は、頻繁に使用されるファイルとメディアのためのクラウドベースのキャッシュ サービスです。 Townes 氏は、「CDN を使用すると、Web サイトがどこでホストされているかは関係ありません。訪問者が世界の他の場所にいる場合、CDN は訪問者の近くのコンテンツをキャッシュし、Web サイトの全体的なページ読み込み時間を短縮します。」と述べています。 WordPress を適切に実行するための重要な概念をいくつか理解したところで、New Relic がどのように役立つかを見てみましょう。 New Relic は、PHP を含むさまざまなサーバーおよび言語テクノロジで実行されるパフォーマンス監視サービスであり、WordPress の最適化に最適です。 New Relic は、フルスタックのパフォーマンス監視 (エンド ユーザー エクスペリエンス) を提供し、詳細なサーバー監視も提供します。 「New Relic を使用すると、環境内で何が起こっているかを簡単に伝えることができます」と Townes 氏は言います。
さらに一歩進んで、New Relic Browser は、最初のページ読み込みをはるかに超えて、ページ全体のライフサイクル データを監視します。エンドユーザーのページが読み込まれるたびに、New Relic Browser は次の情報をキャプチャします:
フロントエンド (ブラウザ) に費やした時間
このチュートリアル「New Relic による WordPress パフォーマンスのモニタリング (Tuts)」では、W3 Total Cache New Relic サービス統合の登録とインストールのプロセスについて説明しました。
[パフォーマンス] > [モニタリング]
サーバー上での New Relic の有効化は、以下に示すように W3TC ダッシュボードから監視できます。
WordPress のパフォーマンスを監視する
New Relic で WordPress を監視する
ブラウザーで実行されるコードとイベント (JavaScript、Ajax、およびエンドユーザー インタラクション)
サーバーのパフォーマンスを評価する
New Relic Server の監視では、大まかに言うと、CPU 使用率、メモリ使用率、ディスクおよびネットワーク I/O の概要に加え、ハードウェアおよび最もアクティブなプロセスに関する情報が得られます。これにより、構成で何が起こっているかを俯瞰的に把握でき、重大な問題があれば警告します:
[プロセス] タブには、各プロセスのメモリと CPU の使用率が表示されます:
サイトのパフォーマンスに関する危険信号を示すアラートの履歴を表示することもできます:
New Relic には、WordPress のパフォーマンスを評価する 3 つの主な方法があります:
1.アデックス。 New Relic は、Apdex スコアリングを使用して、業界標準の測定に対して Wordpress アプリケーションがエンドユーザーに対してどの程度優れたパフォーマンスを発揮するかを評価するのに役立ちます。これにより、トラブルシューティングのためのより適切なデータを提供し、不満または満足しているユーザーの割合をより明確に理解することができます。また、Apdex 評価では、インシデントが発生してから数時間経つまで通知されない一般的な「サイトが遅い」という苦情よりも、より具体的なコンテキストも提供されます。 Apdex では、実際のユーザーがパフォーマンスの向上についてどのように感じているかを測定する、より客観的な方法も提供します。
2. MySQLのパフォーマンス。 WordPress プラグインとテーマは、mySQL データベースを悪用する可能性があります。 New Relic の Slow SQL を調べることで、問題の原因を見つけることができます。たとえば、wp_terms でのカテゴリとタグの選択に、データベース全体の時間の最大 20% がかかる場合があります。あるいは、インデックスを適切に配置したり、クエリを調整したりすることで、遅い INSERT ステートメントを改善できる可能性があることに気づくかもしれません。
3.サードパーティのプラグインと API のパフォーマンスを監視します。 WordPress でソーシャル メディア プラグイン、モニタリング プラグイン、その他の優れたウィジェットを使用するのは非常に簡単ですが、これらのサードパーティの依存関係がブログやブログ マーケティング Web サイトにどのような影響を与えるかは明らかではない場合があります。 New Relic を使用すると、外部サービス呼び出しを「集約」してより包括的なビューを得ることができ、New Relic によってキャプチャされたすべての Web トランザクション内でこれらのサードパーティの応答時間を監視することもできます。
New Relic のブラウザを使用して、WordPress のパフォーマンスをより詳細に調査できます。パフォーマンスに悪影響を与える可能性のあるテーマやプラグインのコードを特に探す必要があります。
ダッシュボードには、Apdex とスループット別に分類されたページ読み込み時間の概要が表示されます。
これは、過去 24 時間の Apdex スコアの拡大表示です:
ページビュー別のパフォーマンスも表示できます:
ドリルダウンすると、Web サイトによってロードされた個々のファイルのパフォーマンスを表示できます。疑わしい時間のかかるテーマまたはプラグイン ファイルを探す必要があります:
MySQL 分析ドリルダウンして詳細を確認できます:
そして、最も遅いクエリを診断します:
これは、不正なプラグイン コードによって作成された遅いクエリを特定する場合に特に役立ちます。
セッション追跡
トレースでは、問題を特定するだけでなく、エラーの発生前後にユーザーが行ったアクションも表示されます。
以下はセッションの詳細なドリルダウンです。これは、テーマとプラグインのコードのパフォーマンスを評価するのに役立ちます:
セッション追跡は次のことを理解するのに役立ちます:
いつでも特定のユーザーのブラウザで何が起こっているかを正確に確認できます。セッション追跡により、ユーザー セッション内のすべてのイベントを詳細かつ直感的に視覚化できるため、問題領域を正確に特定し、解決策を簡単に特定できます。セッション追跡の使用について詳しくは、こちらをご覧ください。
Ajax ページを使用すると、ページ上の対話型呼び出しで何が起こっているかを確認できるため、呼び出しに時間がかかったり失敗したりした場合のユーザー エクスペリエンスの問題を特定するのに役立ちます。
New Relic ブラウザは Ajax データを自動的に記録しないことに注意してください。 New Relic 設定領域でアプリケーションごとにこれをオンにする必要があります。 Ajax ダッシュボードの詳細については、こちらをご覧ください。ブラウザー JavaScript エラー ダッシュボードを使用すると、本番環境の JavaScript で時間の経過とともにどのエラーがどのブラウザーで発生しているかをすぐに確認できます。各エラーの発生回数と、エラーが発生した一意のページの読み込み数に基づいてエラーを調査できます。
これにより、サイト上の実際のユーザー エクスペリエンスに影響を与えるバグを特定できます。これは、独自のテストや、テストベンチから除外したブラウザーには現れない JavaScript のバグについて学ぶための特に強力な方法です。
未来に目を向ける
New Relic を深く掘り下げるには時間がかかりますが、結果はそれだけの価値があります。このツールを使用すると、WordPress スタック内を調べて、対処する必要がある問題領域を迅速に特定できます。
セルフホストの場合、New Relic のサービスは、WordPress スタック、テーマ、プラグインとともに独自のホスティング環境を理解し、パフォーマンスの猛獣を飼いならすための非常に強力な方法を提供します。
ロールアウト プロセス (独自のテーマやプラグインを構築している場合は開発プロセス) 中に、サイトをより深く理解するために New Relic を使用することをお勧めします。
New Relic Lite は永続的に使用できますが、2 週間のトライアル終了後、同じレベルのサービスを維持するには Pro プラン (月額 149 ドル) にアップグレードする必要がある場合があります。 New Relic Browser、Synthetics、および Insight にはすべて独自の価格体系があります。詳細については、New Relic Web サイトをご覧ください。
質問や修正がある場合は、コメントに残してください。今後も私の Tuts チュートリアルやその他のシリーズを続けてご覧になりたい場合は、私のインストラクター ページにアクセスするか、@reifman をフォローしてください。
###関連リンク###
以上が新しいレリックに関する WordPress のパフォーマンスの問題を診断するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。