2009-08-05 2 views
1

Ich helfe jemandem mit einer Drupal 6-Installation, und sie sind sehr betroffen von der Leistung der Website, obwohl sie sich gerade in der Phase der Definition von Inhaltstypen befinden. Das Laden der Modulliste kann mehr als 30 Sekunden dauern, und das Importieren eines Inhaltstyps dauerte fast 3 Minuten.Drupal - Beziehung von CCK-Feldern und Inhaltstypen zur Leistung?

Dies ist auf einem großen gemeinsamen UNIX-System installiert, und ich habe andere D6-Installationen auf dem gleichen Server ohne echte Probleme (etwas Langsamkeit, aber nichts ganz so schlecht). Ich habe heute Nachmittag einige Zeit damit verbracht, alle Nicht-Kern-Module auf der Site zu deaktivieren, und konnte die Ladezeit für die Modullisten-Seite auf ungefähr 5 Sekunden reduzieren. Als ich Gruppen von Modulen wieder aktivierte, schien die CCK-Modulfamilie diejenige zu sein, die den größten Leistungseinbruch erleiden musste (eine 15-20-Sekunden-Erhöhung der Seitenladezeit für die Modulliste).

Noch einmal, ich habe andere Seiten auf diesem Server, die auch CCK (und die meisten der gleichen anderen Module) laufen und so etwas nicht erleben. Der Hauptunterschied besteht darin, dass auf dieser sehr langsamen Website eine Menge Inhaltsarten und CCK-Felder definiert sind - 46 separate Inhaltstypen und 162 CCK-Felder.

Ich ziehe eine Schlussfolgerung, dass es eine direkte Verbindung zwischen Site-Leistung (zumindest in bestimmten Operationen mit dem Erstellen und Bearbeiten von Inhaltstypen) und Anzahl der Inhaltstypen und benutzerdefinierten Felder, aber ich nicht konnte um genau festzustellen, welche Auswirkungen diese Inhaltstypen und -felder haben und ob Sie etwas tun können, um deren Auswirkungen zu mindern.

Ich habe das Devel-Modul installiert und festgestellt, dass der größte Leistungsabfall auf der Seite Module in den Abfragen mit cache_menu liegt, aber ich bin mir nicht sicher, ob das direkt mit der Anzahl der Inhaltstypen verknüpft ist und/oder Felder.

Jede Führung ist willkommen!

Danke, Paul

Antwort

1

Zunächst einmal: Die Module Seite ist in der Tat ein böses Tier, da es vollständig alle Drupals internen Caches leert und baut sie, dass die frisch installierten Module die neuesten Daten zu gewährleisten. Es ist kein guter Prädiktor für die Site-Leistung (da normalerweise nur bestimmte administrative Aufgaben solche Caches spülen), obwohl es lästig ist.

Zweitens: Importieren von Inhaltstypen ALSO löscht diese Caches, weil CCK sicherstellen möchte, dass auch alles auf dem neuesten Stand ist. Es ist suboptimal, aber da hast du es.

Schließlich: Die Anzahl der CCK-Felder und Inhaltstypen, die Sie haben, beeinflussen, wie viel Arbeit erledigt wird, wenn Caches geleert und neu erstellt werden. CCK holt alle Informationen über alle definierten Inhaltstypen und ihre Felder ein, erstellt eine Datenstruktur, um sie alle zu beschreiben, und verwendet diese zwischengespeicherte Version zur späteren Bezugnahme. Bei hunderten von Feldern und Dutzenden von Inhaltstypen dauert die Neuerstellung dieses Datencaches länger, was die auf der Modulseite angezeigten Verzögerungen und das Importieren neuer Inhaltstypen noch weiter verschärft.

Die gute Nachricht (wie es ist) ist, dass dieses spezielle Problem nicht zu viel Einfluss auf die Gesamtleistung der Website hat, nur die administrativen Aktionen, die diese Caches leeren.

+0

Awesome Informationen gefunden werden. Vielen Dank! – gravelpot

0

Dies ist die gleiche Antwort, die ich bei einer anderen Drupal-Frage gemacht habe; Wenn Eatons Antwort Ihr Problem nicht gelöst hat, sollten Sie sich vielleicht das Modul "Ansichten" und das dynamische Wiederherstellen des Menüs ansehen. Jedes Mal wird das Menü neu aufgebaut, was zu 100 oder sogar 1000 Abfragen führt. Je nachdem, wie die Joins erstellt werden, können Sie zwei ähnliche Joins in denselben Tabellen haben, was zu einer Verdopplung der Anzahl der Abfragen führt. Weitere Informationen können here