Drupal-CCKフィールドとコンテンツタイプとパフォーマンスの関係

StackOverflow https://stackoverflow.com/questions/1230940

  •  22-07-2019
  •  | 
  •  

質問

私はDrupal 6のインストールを手伝っていますが、コンテンツタイプを定義する段階にあるにもかかわらず、サイトのパフォーマンスに非常に悩まされています。モジュールリストの読み込みには30秒以上かかり、コンテンツタイプのインポートには3分近くかかりました。

これは大規模な共有UNIXシステムにインストールされており、同じサーバー上で他のD6インストールを実際の問題なしで実行しています(多少の遅延はありますが、それほど悪いことはありません)。今日の午後、サイト上のすべての非コアモジュールを無効にして、モジュールリストページの読み込み時間を約5秒に短縮することができました。モジュールのグループを再度有効にしたとき、最大のパフォーマンスヒットが発生したのはCCKファミリのモジュールであるように見えました(モジュールリストのページ読み込み時間が15〜20秒増加しました)。

繰り返しますが、このサーバーには、CCK(および同じ他のほとんどのモジュール)を実行していて、このようなことを経験していない他のサイトがあります。主な違いは、この非常に遅いサイトには、多数のコンテンツタイプとCCKフィールドが定義されていることです。46の別個のコンテンツタイプと162のCCKフィールドです。

サイトのパフォーマンス(少なくともコンテンツタイプの作成と編集に関連する特定の操作)とコンテンツタイプとカスタムフィールドの数との間には直接的な関係があるという結論を導き出していますが、このコンテンツタイプとフィールドの影響を正確に判断し、それらの影響を軽減するためにできることは何かあります。

Develモジュールをインストールしましたが、モジュールページの最大のパフォーマンスドレインはcache_menuに関係するクエリにあることがわかりましたが、それがコンテンツタイプの数および/またはフィールド。

ご意見をお寄せください!

ありがとう、 ポール

役に立ちましたか?

解決

最初に:モジュールページは、Drupalのすべての内部キャッシュを完全にフラッシュし、それらを再構築して、新しくインストールしたモジュールに最新のデータを確実に保持するため、実に邪悪です。迷惑ではありますが、サイトパフォーマンスの良い予測子ではありません(通常、特定の管理タスクのみがこれらの種類のキャッシュをフラッシュするため)。

2番目:コンテンツタイプをインポートすると、これらのキャッシュもフラッシュされます。これは、CCKがすべてが最新であることを確認するためです。最適ではありませんが、そこにあります。

最後に、使用するCCKフィールドとコンテンツタイプの数は、キャッシュがフラッシュおよび再構築されるときに実行される作業量に影響します。 CCKは、定義されたすべてのコンテンツタイプとそのフィールドに関するすべての情報を取り込み、それらすべてを記述するデータ構造を構築し、そのキャッシュバージョンを後で参照するために使用します。数百のフィールドと数十のコンテンツタイプがあるため、データのキャッシュの再構築に時間がかかり、モジュールページや新しいコンテンツタイプをインポートするときに表示される遅延が悪化します。

良いニュースは(このような)、この特定の問題がサイトの全体的なパフォーマンスにあまり影響を与えないことであり、キャッシュをフラッシュする管理アクションだけです。

他のヒント

これは、もう1つのDrupalの質問に対して行った回答と同じです。 Eatonの答えで問題が解決しなかった場合は、Viewsモジュールと動的なメニューの再構築をご覧ください。 毎回、メニューが再構築され、数百または数千ものクエリが発生します。 結合の作成方法によっては、同じテーブルで2つの同様の結合が行われ、クエリ数が2倍になる可能性があります。 詳細については、こちら

をご覧ください。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top