Warum ist Drupal langsam?

8

Ich habe die Seite auf drupal gemacht

Meine Seite hat 7500 Benutzer und ungefähr (20 bis 50 ohne eingeloggt) (2 bis 10 eingeloggte) Benutzer sind online (und das ist kein starker Verkehr, denke ich)

Die Site befindet sich auf einem dedizierten Server. Ich habe Einstellung in der Leistung von drupal admin aktiviert und auch memcache und eaccelerator

installiert

Ich habe in Abfrageprotokollen nach dem Modul "devel" gesucht. es feuert insgesamt 600 bis 900 Abfragen auf jeder Seite

Wenn ich den Patch von path.inc installiert habe, um die Abfragen von drupal_look_path() zu reduzieren. Es hat Abfragen auf rund 400 reduziert

Ich habe auch einige positive Änderungen in der mysql ( my.cnf ) Datei gemacht, aber immer noch gibt es viele gleiche Abfragen, die immer wieder von user_load() function ausgeführt werden

Ich habe 60 bis 70 Module aktiviert und alle sind voll belegt. Ich kann die Module nicht entfernen

Noch läuft die Seite langsam, es dauert ca. 10 bis 15 Sekunden

Jetzt weiß ich nicht, warum die Seite so langsam läuft

  • Liegt es daran, dass das Drupal den großen PHP-Code hat?
  • Liegt das daran, dass auf jeder Seite so viele Abfragen ausgelöst werden?
  • Verbessert die InnoDB-Engine die Leistung?

Bitte, jede Art von Vorschlägen sind willkommen

    
karan 18.05.2011, 14:31
quelle

5 Antworten

9

400 Abfragen für jede Anfrage ist eine Sucidie (aber auch 50 +).

Sie sollten einen HTML-Cacher implementieren. Meine Website macht normalerweise nicht einmal die db-Verbindung. Es feuert nur den HTML-Cache in einer Datei.

    
dynamic 18.05.2011 14:34
quelle
6

Einige zusätzliche Dinge, die Sie sich ansehen sollten:

  • Installieren Sie ein Tool wie Yslow / PageSpeed, um zu sehen, wie viel von diesen 10-15s Client- und Serverzeit sind.

  • Installiere XhProf (auf einer Entwicklungssite, nicht live) zusammen mit Devel, um zu sehen, welche Funktionen am meisten Zeit verbrauchen. Schauen Sie sich diese zuerst an. Bearbeiten, jetzt mit Link: Ссылка

  • Die Verwendung von pressflow könnte etwas helfen, aber da Sie den path.inc-Patch bereits verwenden, wahrscheinlich nicht so viel.

  • Sie haben erwähnt, dass Sie Memcache installiert haben. Hast du auch das Memcache-Modul installiert und das Cache-Plugin so konfiguriert, dass Memcache verwendet wird?

  • EDIT: Ja, der Wechsel zu InnoDB kann helfen. Einer der Hauptleistungsvorteile von InnoDB ist das Sperren auf Zeilenebene (im Gegensatz zum Sperren von MyISAM auf Tabellenebene), was bedeutet, dass mehrere INSERT / UPDATE-Abfragen für dieselbe Tabelle sich gegenseitig nicht blockieren, es sei denn, dies ist wirklich notwendig. InnoDB funktioniert jedoch nicht ohne weiteres gut, Sie müssen Ihre MySQL-Konfiguration für Ihre spezifische Site wirklich genau abstimmen. Dies ist also ein Schritt, den Sie nur vorsichtig und nach dem Testen und Optimieren auf einer Entwicklungssite durchführen sollten. Es gibt bereits verschiedene Fragen auf dieser Seite und anderswo über InnoDB Tuning ...

Alles andere ist dann ortsspezifisch und hängt von den Modulen ab, die Sie verwenden. Aber vor allem Dinge wie komplexe node_access Setups und mehrere Sprachen (i18n!) Neigen dazu, entweder langsame Abfragen und / oder eine Menge von ihnen zu verursachen.

    
Berdir 18.05.2011 15:12
quelle
1

Nicht alle Module nutzen die Caching-Mechanismen, die Sie im Bereich der Performance-Einstellungen einschalten können. Es würde sich lohnen, herauszufinden, welche die langsamsten Abfragen durchführen und versuchen, die Entwickler dazu zu bringen, sie zu verbessern.

Prüfen Sie alternativ, ob Sie mit weniger Modulen etwas erreichen könnten. Einige Module überlappen sich etwas in der Funktionalität, so dass Sie möglicherweise in der Lage sind, die Funktionsweise der Site ein wenig zu reorganisieren.

Zusätzlich müssen Sie prüfen, ob Ihre Einstellungen MySQL genug Speicher für diese Abfragen erlauben. Die meisten MySQL-Distributionen kommen mit verschiedenen Versionen von my.ini, die als "klein", "mittel", "riesig" usw. gekennzeichnet sind. Kopieren Sie die "große" in my.ini (sichern Sie die alte zuerst) und starten Sie die Datenbank neu, um zu sehen, ob Das Ausfüllen aller Cache-Größen macht einen Unterschied. Möglicherweise haben Sie dort einen Flaschenhals, aber es kann schwierig sein herauszufinden, welche Einstellung es verursacht.

Gleiches gilt für PHP. Setzen Sie memory_limit in der php.ini auf 500MB oder etwas und schauen Sie, ob es hilft. Natürlich können Sie dies nicht tun, abhängig von Ihren Hosting-Vereinbarungen, aber es wird eine mögliche Ursache (oder nicht) beseitigen, wenn Sie können.

    
Matt Gibson 04.08.2011 16:29
quelle
0

Die Leistung Ihrer Drupal-Website hängt auch davon ab, wie gut Ihre Hosting-Plattform auf Drupal abgestimmt ist. Drupal erfordert eine spezielle Optimierung der LAMP-Stack-Komponenten. Sie können Drupal-spezifische Hosting-Unternehmen Ссылка ausprobieren, damit Ihre Website schneller läuft.

    
Gleb 14.10.2013 21:05
quelle
0

vor dem Problem der Drupal-Langsamkeit. Aber habe ein ganz anderes Problem als die anderen erwähnten.

Ich habe den gesamten Inhalt auch den Drupal-Header für eine Drupal-Seite eines bestimmten Inhaltstyps deaktiviert.

Die Ladezeit für diese Seite beträgt mehr als 20 Sekunden!

Ich habe Hilfe von YSlow und NET Firebug Panels genommen.

Als ich sie ansah, bemerkte ich:

Die Einbeziehung von JS- und CSS-Dateien dauert nur 3 bis 2 Sekunden, und es gibt einige Einschlüsse, die als Ergebnis 20 Sekunden brauchen.

Aber ich kann nicht herausfinden, warum die js und css Einschlüsse so viel Zeit brauchen. (Dazu gehören auch normale Drupal Core js und CSS-Dateien)

    
jospratik 03.12.2014 13:36
quelle