Drupalは開発が速いですが、パフォーマンスは非常に劣っています。1秒あたり50件のリクエストに到達するのは困難です。
そして、単純なWebページには非常に多くのSQLクエリがあります。Drupal.orgでフォーム送信のリクエスト時間をテストする場合、終了するのに常に数秒かかります。
Webサイトの速度をどのように改善しますか?
Drupalは開発が速いですが、パフォーマンスは非常に劣っています。1秒あたり50件のリクエストに到達するのは困難です。
そして、単純なWebページには非常に多くのSQLクエリがあります。Drupal.orgでフォーム送信のリクエスト時間をテストする場合、終了するのに常に数秒かかります。
Webサイトの速度をどのように改善しますか?
回答:
キャッシュ、キャッシュ、およびキャッシュ。
doに関する同様の質問に対して私が以前に与えたいくつかの提案
これらは私の経験からのメモであり、他の人が経験するものとは異なる場合があります。私は主にLAMPスタックを使用しており、私の提案では同じことを考慮しています。
私が一般的に従うキャッシングの経験則。
Drupalサイトのパフォーマンスを改善する(複雑さの順に)
コアを最新の状態に保ち、contribモジュールとテーマを最新の状態に保ちます。はい、重要です。
サーバーにAPCをインストールします。(レサリオンからの提案に基づいてトップに移動)
ページキャッシュ:admin / config / development / performance 最小キャッシュライフタイムとキャッシュページの有効期限の違い
スプライトシートを使用する-https ://www.drupal.org/project/spritesheets
[最小キャッシュライフタイム値]を高い数値に設定し、キャッシュクリアモジュールを使用して特定のページのキャッシュをクリアします- ノードを編集/更新するたびに、匿名ユーザーのすべてのページキャッシュが失われます
Boostモジュールも非常に便利です。Webページから静的ファイルキャッシュを作成します。これは主に、多くの匿名ユーザートラフィックがあるWebサイト用です。
BoostはDrupalに静的ページキャッシングを提供し、ほとんど匿名のトラフィックを受信するサイトのパフォーマンスとスケーラビリティを大幅に向上させます。共有ホスティングの場合、これはパフォーマンスの向上という点で最適なオプションです。専用サーバーでは、代わりにワニスを検討することをお勧めします。
Apacheは完全にサポートされており、Nginx、Lighttpd、およびIIS 7は準サポートされています。Boostは、html、xml、ajax、css、およびjavascriptをキャッシュおよびgzip圧縮します。ブーストキャッシュの有効期限ロジックは非常に高度です。サイトのさまざまな部分に異なるキャッシュ有効期間を設定するのは非常に簡単です。組み込みのクローラーにより、期限切れのコンテンツが迅速に再生成され、ページが高速にロードされます。
SQLIteデータベースドライバーを使用している場合は、ディスクの同期を無効にする必要があるかもしれません。
/**
* Implements hook_init().
*/
function HOOK_init() {
db_query('PRAGMA synchronous = OFF');
}
一部のサーバー構成では、パフォーマンスが大幅に向上します。
Drupalのパフォーマンスの秘密は、キャッシングとグッドプラクティスに従うことです。提案:
defer
、async
属性または属性を使用します。Webサイトの負荷が高いと予想される場合は、ニスを使用します。CDNの使用も検討してください。
続きを読む:パフォーマンスのスケーリングとチューニングに関する実世界の経験
その他のリソース:
パフォーマンスとスケーラビリティに関するいくつかの問題を解決するためのベストプラクティス、例、および詳細な説明を提供するHigh Performance Drupalという本があります。Drupalの内部、アプリケーションのパフォーマンス、データベース、Webサーバー、パフォーマンス分析にコーディングとインフラストラクチャの手法を適用する方法を学びます。
Drupal 7のパフォーマンスとスケーラビリティの記事では、Drupal 6とDrupal 7の例と次のリストを見つけることができます。
注目すべきDrupal 7のパフォーマンスおよびスケーラビリティプロジェクト:
- https://www.drupal.org/project/agrcache
- https://www.drupal.org/project/apc
- https://www.drupal.org/project/beanstalkd
- https://www.drupal.org/project/boost
- https://www.drupal.org/project/cdn
- https://www.drupal.org/project/core_library
- https://www.drupal.org/project/entitycache
- https://www.drupal.org/project/efq_views
- https://www.drupal.org/project/hash_wrapper
- https://www.drupal.org/project/labjs
- https://www.drupal.org/project/headjs
- https://www.drupal.org/project/media_amazon
- https://www.drupal.org/project/memcache
- https://www.drupal.org/project/mongodb
- https://www.drupal.org/project/performance_hacks
Drupalサイトのパフォーマンスを最適化するために多くの調整が行われていますが、すべてが必須というわけではありません。Drupalのプラットフォームの最適化につながる特定の代替案と手法を探してみる必要があります。キャッシュ、はい、それはさまざまな手段でウェブサイトを最適化する方法ですが、いくつかの追加のアドオンやヒントを使用すると、手間のかからないプロセスなしでウェブサイトを増やしたり調整したりできます。
最近、私たちのウェブサイトに同様の記事を公開しました。これは、微調整作業を行う際に役立つと思われます。
ソース:http : //www.cloudreviews.com/blog/drupal-performance-optimization-tips
新しいモジュールをインストールせずに、Drupalの速度を適切なレベルに向上させる可能性がいくつかあります。はい、Drupalにはパフォーマンス設定があります。
「JavaScriptファイルの集約」を有効にします
この構成を設定したら、次の場所に移動します:YourSiteDomain / admin / reports / status
これで、drupal 7サイトの速度の最適化が完了しました。
速度を確認するためのオンライン速度テストツールはほとんどありません。上記の設定を更新する前に、必ず速度チェックツールのいずれかを使用してテストを実行してください。そして、パフォーマンス設定を更新したら、速度テストを再度実行します。間違いなく改善が見られます。
PingdomとHTTP Fox(FireFoxプラグイン)は、サイトの速度を確認するための最良のツールです。
上記の設定は、匿名ユーザーのページをキャッシュするだけでなく、CSSファイルとJSファイルも圧縮します。たとえば、サイトで80個のファイルを読み込んでいる場合、これらの設定を送信すると、リクエストの数が少なくとも50%削減されます。ここで、Drupalサイトの速度が2倍に向上します。
バックエンド開発者として、ウェブサイトのパフォーマンスを向上させるためにコードを改善する余地が常にあります。バックエンド開発者向けのガイドラインは次のとおりです。
1)ウォッチドッグテーブルをクリーンアップする
2)変数APIを乱用しないでください
3)HTTPリクエストの数を減らすまたは改善する
4)「ドットモジュール」を短くする
フォントエンドとサイトビルダーに関しては、さらに多くのことを達成できますが、あらゆる観点からパフォーマンスを考慮することが重要です。
出典:ライブ配信前に最適化する
2 GBのRAMを備えた最適化されていないDrupal 7サイトは、1秒あたり約20〜25の要求を十分に処理できます。それ以上にしたい場合は、サイトを微調整する必要があります。微調整する内容は、サイト上のほとんどのユーザーが匿名か認証済みかによって異なります。パフォーマンス改善のためにできることは次のとおりです。
サイトは主に匿名ユーザーにサービスを提供しています:
1)APC、memcache、およびentitycacheを確実にインストールして構成します。
2)Webサーバーの前にニスプロキシを配置します。インストールと構成には約30分かかりますが、ページのロード時間は大幅に短縮されます。実際、すべてのページがキャッシュされている場合、ワニスは2 GBのマシンで毎秒約300のリクエストを処理できます。Expireモジュールを使用して、コンテンツの更新/削除時に選択したページのみを期限切れにします。
3)高度なCSS / JS集約モジュールを使用して、CSSおよびJSファイルを集約します。すべてのJSファイルをページの下部に移動してみてください。ただし、これによりサイトが破損する可能性があるため、徹底的なテストを行った後、実稼働環境で実装してください。重要なCSSのインライン化も試してください。私の経験では、ページのロード時間が約0.5秒短縮されます。
4)CSS / JS / imagesには、将来の期限切れヘッダーが必要です。これにより、ブラウザーが同じCSS / JS / imagesを何度も要求しないようになります。
5)Webサーバーが圧縮されたページ/ CSS / JSを提供していることを確認します。
上記の5つの手順を実行すると、2 GBのRAMサーバーは1秒あたり50件のリクエストを非常に簡単に処理できるはずです。
サイトは主に認証されたユーザーにサービスを提供しています:
そのようなサイトの最適化はより複雑です。このようなサイトは、最適化の目的で2つのサブカテゴリのいずれかに分類されます。
(a)ユーザー固有の情報を持つ1つまたは2つのブロックを除き、サイト上のほとんどのページは同一です。たとえば、Drupal Commerceサイト。
(b)ほとんどのページはユーザー向けに完全にカスタマイズされています。たとえば、Drupal Commonsサイト。
サイトがカテゴリ(a)に該当する場合は、ほとんど匿名ユーザーにサービスを提供するサイトについて説明したテクニックのほとんどを適用します。唯一の違いは、非管理ページの場合、ニスはヘッダーからSESSION Cookieを削除し、キャッシュされたページを提供する必要があることです。AJAXブロックモジュールを使用して、AJAXを使用してユーザー固有の情報でサーバーブロックをサーバーします。この方法では、ほとんどのページがVarnishを使用して非常に迅速に提供され、ユーザー固有の情報がAJAXを介して提供されます。
サイトがカテゴリ(b)に該当する場合、Authcacheモジュールを使用します。かなりの設定とメンテナンスが必要なため、可能な限り使用しないことを好みます。しかし、それは本当にうまく機能します。Varnishを使用するほど高速ではありませんが、探している1秒あたり50のリクエストを処理できます。
ここで説明した以上のことをお望みの場合は、Drupalパフォーマンス最適化チェックリストをご覧ください。開示:それは私によって書かれました。Drupalサイトを高速化するためにできることの完全なリストを引用しています。