web-dev-qa-db-ja.com

ビューとパフォーマンス

私は巨大なメディアサイトを設計しています。ホームページには約20のビューが必要で、毎日約10万人の訪問者を魅了するはずです。このサイトは専用サーバーでホストされています。 Drupalキャッシングとブートモジュールを設定する以外に、パフォーマンスを最適化するために他に何をすべきですか?ビューの使用について心配する必要がありますか?

4
Jane

パフォーマンスは非常に主観的であり、カスタムコードの量、ログインの数、予想される使用パターンに応じて、サイトごとに大きく異なります。

最初にすべきことは、予想される使用パターンを把握し、それらをスプレッドシートに入れて、さまざまなページに同時にアクセスする訪問者の数などを見積もることです(たとえば、1回のログインで何回発生するかなど)。時間、つまりどのページが最もトラフィックが多いかは、ユーザーが認証されているかどうかです)。

次に行うべきことは、 LoadStorm のようなもの、または JMeter のような非常に基本的なものを使用して、ある種の負荷テストを準備することです。予想されるトラフィックパターンを模倣または超えるシナリオをいくつか設定します。次に、テストを実行します。

負荷テストを開始すると、サイトのボトルネックがどこにあるかを非常にすばやく確認できます。 XDebugプロファイラ を使用して、パフォーマンスのボトルネックがどこにあるかを確認するために負荷テストを行っているときに、サイトのcachegrindダンプを取得できます。データベースのパフォーマンスを監視することもできます(CPU /メモリとディスクI/Oは、簡単に監視できます)。

それがすべて終わったら、次のことを検討できます。

  • PHP opcode Webサーバーを高速化するためのキャッシュ
  • Varnish のようなリバースプロキシで負荷の一部を取り除く
  • memcached を設定してデータベースの負荷を軽減する
  • チューニング データベース
  • 負荷分散 を複数のインスタンスで設定する

Drupalには、キャッシュモジュール/オプションの適切なリストと、認証されたユーザーと認証されていないユーザーに対してそれらがどのように機能するか here があります。

9
hross

1ページのビュー数が多すぎるようです。ビューはパフォーマンスに優れていません。私は5つのビューを持つページがあり、それらは高速ではありません。

ビューの結果がキャッシュされていても、ビューをメモリにロードして処理するのに時間がかかる場合があります。ページがキャッシュされるとこの問題は解消されますが、ビジーなサイトでは、キャッシュされたページが構築されるまでに時間がかかる可能性があります。

キャッシングとチューニングが少し役立ちます。ただし、キャッシュされていない場合は、ページを適切な時間内に表示する必要があります。カスタムブロックを記述して、はるかに軽いオーバーヘッドでビューの作業を行うことができます。それがどのような違いをもたらすかを確認するために、それを試す価値があります。

XHprof を使用すると、ページのロードに最も時間がかかっているものを確認できます。

ビュー3の効果的な最適化手法は何ですか? ビューで発生していた問題について説明します

3
Jeremy French