15

Drupal ベースのサイトに取り組んでいますが、個別の CSS ファイルと js ファイルがたくさんあることに気付きました。コードの一部を調べてみると、多くのクエリが使用されているケースもかなり多く見られます。

Drupal のパフォーマンスを改善するためにどのような手法を試しましたか? また、Drupal のパフォーマンスを「すぐに」改善するためにどのモジュールを (もしあれば) 使用しますか?

4

5 に答える 5

23

管理者/設定/パフォーマンス ページに移動し、CSS と JS の集約を有効にし、最低有効期間 1 分のページ キャッシングを有効にすると、トラフィックの多いサイトですぐにブーストが得られます。独自のコードを記述してクエリを実行している場合は、高価な関数に対して独自の個別キャッシュを記述することを検討してください。リンクされた記事は Drupal 6 ではなく 5 を対象としていますが、d6 での唯一の変更点は、シリアライゼーション要件の廃止と、cache_set() および cache_get() 関数の関数シグネチャです。(両方とも記事のコメントに記載されています)

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

ビューを頻繁に使用している場合は、インデックス化されていないフィールドに対して生成されるクエリを確認してください。特に、CCK フィールドによるソートとフィルタリングは遅くなる可能性があります。これは、CCK が主キーを超えてインデックスを自動的に追加しないためです。D6 では、管理画面でビューをプレビューし、クエリのテキストをコピーして、mysql または任意のクエリ分析ツールで EXPLAIN を介して実行します。

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

于 2009-02-22T00:18:07.110 に答える
5

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

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

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

于 2009-02-21T16:22:31.433 に答える
0

Drupalのデフォルトキャッシュ以外に、パフォーマンスを向上させる別の方法があります

ブーストモジュールは最高の1つです。memcache、Varnish(Drupal 7 / Pressflow)、CDNは、パフォーマンスを向上させることができるもう1つの方法です。

于 2012-10-13T06:40:18.943 に答える
0

また、高品質の SSD ストレージを使用することによるパフォーマンスの向上にも言及する価値があります。SSD に移行すると、最初の応答のロード時間が一貫して 30% 以上短縮されました (前回のプロジェクトでは、同じ Apache/Memcache/Cloudfront EC2 構成を使用して約 450 ミリ秒から 250 ミリ秒になりました)。それは、投げたすべてのコマンドまたはスクリプトがほぼ瞬時に実行される、きびきびしたサーバーを管理することです。私は二度と戻りません。

于 2015-04-23T01:41:16.257 に答える
0

Boost モジュールに関する Benedict の推奨事項を強く支持します。これだけで、正しく構成されていれば、Web サイトが共有ホスティングで動作するようになり、実際にはまったくバグがありません。

CSS/JS アグリゲーションをオンにし、Boost をオンにすると、サイトは匿名ユーザーに対して非常に優れたパフォーマンスを発揮します。

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

最大のパフォーマンス向上は常にキャッシングから得られますが、遅いクエリの監視と調整、apache と PHP の構成の監視と調整、使用するモジュールを賢く利用することも非常に重要です。

于 2010-10-29T03:47:07.570 に答える