2009-02-21 11 views
15

私はDrupalベースのサイトで作業しており、別々のCSSとjsファイルがたくさんあることに注意してください。いくつかのコードを渡して、私はまた、多くのクエリも使用されているかなりのケースを見ることができます。Scaling Drupal

Drupalのパフォーマンスを向上させようとした技術と、Drupalのパフォーマンスを向上させるためにどのモジュールを使用していますか?

答えて

21

admin/settings/performanceページに移動して、CSSとJSの集約を有効にし、寿命が1分以上のページキャッシュを使用すると、トラフィックの多いサイトですぐにブーストできます。独自のコードを作成してクエリを実行する場合は、独自のディスクリプタcaching for expensive functionsを作成することを検討してください。リンクされた記事は6ではなくDrupal 5を扱いますが、d6の唯一の変更は、cache_set()およびcache_get()関数のシリアライゼーション要件と関数シグネチャの削除です。 (どちらも記事のコメントに記載されています)

大規模サイトでは、memcachedサーバーをネットワークにドロップすることも検討してください。memcachedモジュールを使用すると、キャッシュされたデータのdrupalデータベースを完全にバイパスできます。膨大な量のコンテンツがあり、検索がホットスポットである場合は、drupalの組み込み検索インデクサーではなく、検索インデクサーとしてlucene/solrを使用することも検討できます。組み込みのインデクサーにとってはうってつけですが、負荷が重い(1時間に何百、何千もの新しいコンテンツが表示されます) apache solrモジュールは、それを結びつけることができます。

Viewsを大量に使用している場合は、索引付けされていないフィールドに対して生成された問合せを確認してください。特にCCKフィールドによる並べ替えとフィルタリングは、CCKが主キー以外のインデックスを自動的に追加しないため、遅くなる可能性があります。 D6では、管理画面でビューをプレビューし、クエリのテキストをコピーし、mysqlなどのクエリ分析ツールのEXPLAINで実行します。

YSlowやFirebugのようなツールは、大量のイメージファイル、リモートサーバでホストされているJSなどの低速なものを見つけ出すのにも役立ちます。

+1

ブロックキャッシングを設定する方法についても少し触れておきます。ページキャッシングは匿名のものにしか影響しないため、登録ユーザーでもコンテンツをキャッシュできます。 –

5

すぐに使えるDrupal 6は、CSSとJavaScriptの集約を提供します。ほとんどのcssファイルとjsファイルは単一のファイル(したがって単一のHTTP要求)に結合され、空白が短縮されます(帯域幅消費を減らすため)。これは/ admin/settings/performanceの下で有効にすることができます。

また、この画面には、データベースのクエリ数を減らすためのDrupal(非常に効果的な)キャッシュ用のコントロールがあります。

さらに、Drupal(およびおそらくインストールしているすべてのモジュール)にPHPソースがたくさんあるため、APCなどのPHPオペコードキャッシュを使用すると、リクエスト時間が大幅に短縮されます。

0

私は強く2番目のBenedictがBoostモジュールを推奨しています。正しく設定されていれば、共有ホスティングであなたのウェブサイトを飛ばすことができ、実際にはバグはありません。

CSS/JS集約をオンにし、Boostをオンにすると、匿名ユーザーに対してサイトのパフォーマンスが向上します。

あなたのサイトが主にログインしているユーザーを扱う場合は、セッションが適切にキャッシュされていることを確認する作業がさらに必要になります。おそらくmemcachedなどのSQLクエリキャッシュの使用を検討してください。

最大のパフォーマンス向上は常にキャッシュに起因しますが、遅いクエリの監視と調整、ApacheとPHPの構成の監視と調整、使用するモジュールの賢明さは非常に重要です。Drupalのデフォルトのキャッシュ以外

+0

私は自分のウェブサイト上でDrupal Performance Whitepaperを開発しています。これは、全面的なサイトパフォーマンスを改善するためのアイデアの壁として提供しています。http://www.lifeisaprayer.com/articles/web-design/2010/drupal-performance-white-paper – geerlingguy

0

は、

ブーストモジュールは最高の一つである、パフォーマンスを向上させるためにいくつかの他の方法があります。 memcache、Varnish(Drupal 7/Pressflow)、CDNはパフォーマンスを向上させるもう1つの方法です

0

高品質SSDストレージの使用によるパフォーマンスの向上についても言及しておきましょう。 SSDへの移行時に、最初の応答の読み込み時間を30%以上削減しました(同一のApache/Memcache/Cloudfront EC2設定を使用して、私の最後のプロジェクトで約450msから約250msに移行しました)。それはあなたがそれに投げるすべてのコマンドまたはスクリプトがほぼ瞬間的であるスナップサーバーを管理することです。私は戻ってこない。

関連する問題