Wie können Sie die Drupal-Leistung verbessern?

54

Drupal ist schnell in der Entwicklung, aber die Leistung ist so schlecht. Es ist schwer, 50 Anfragen pro Sekunde zu erreichen.

Und es gibt so viele SQL-Abfragen auf einer einfachen Webseite. Wenn Sie die Anforderungszeit eines Formulars in Drupal.org testen, dauert es immer Sekunden, bis es fertig ist.

Wie verbessern Sie die Geschwindigkeit Ihrer Website?

Bruce Dou
quelle
3
Haben Sie die Site tatsächlich durchsucht? Ich kann mir nicht vorstellen, dass das noch nie zuvor besprochen wurde.
Letharion
1
Kasse meine Folien goo.gl/30yi39 sollte Ihnen helfen
mikeytown2

Antworten:

61

Caching, Caching und Caching.

Einige Vorschläge, die ich zuvor zu einer ähnlichen Frage gemacht habe, machen weiter

  1. Wenn Sie Varnish oder einen anderen Reverse-Proxy vor Ihren http-deamon stellen, ist dies wahrscheinlich das Beste, was Sie tun können.
  2. Während der DrupalCon Copehagen erklärte Rasmus , dass die Verwendung eines PHP-Opcode-Caches wie APC eines der besten Dinge ist, die Sie tun können, um PHP im Allgemeinen zu beschleunigen. Die Leistung verbessert sich mit neueren Versionen von PHP. Das Upgrade von PHP bietet auch zusätzliche Vorteile, wenn Sie Drupal aktualisieren. Von 6 auf 8 wird Drupal eine große Verschiebung in Richtung Objektorientierung durchlaufen, was auch der Fall ist, wenn die meisten Leistungsverbesserungen in den neueren PHP-Versionen vorgenommen werden.
  3. Memcache ist eine beliebte Option, um den Cache zu beschleunigen, indem der Cache im Speicher anstatt auf einer Disc abgelegt wird.
  4. Panels + Caching in Kombination mit Cache-Aktionen können die Leistung erheblich steigern, auch für angemeldete Benutzer, da sie sehr komplexe Logik unterstützen.
  5. Der Entity-Cache ist ein netter und unproblematischer Geschwindigkeitsschub für alle, die Drupal 7 verwenden.
  6. Schreiblastige Sites haben weniger "gut etablierte" Lösungen. Einige Optionen umfassen.
    1. Wenn Sie häufig Schreibvorgänge vollständig verschieben, z. B. Statistiken, wie z. B. Google Analytics.
    2. Zwischenspeichern von häufigen Schreibvorgängen mit einer benutzerdefinierten Lösung in so etwas wie NodeJS, die alle X. Sekunde in die Datenbank schreibt.
    3. Opfere die heilige SÄURE und benutze eine Datenbank wie MongoDB . (Siehe Berdir's Kommentar unten)
    4. Clustern Sie Ihre SQL-Datenbank. Liest aus einer Datenbank, schreibt in eine andere. Dies stammt ursprünglich aus D7, und Pressflow kann in D6 Abhilfe schaffen.
Letharion
quelle
All dies wurde hinzugefügt, aber all dies ist für das Lese-Caching, nicht gut für die Websites haben viel zu schreiben.
Bruce Dou
Sie haben nichts Spezielles über Schreibvorgänge gesagt. :) Ich werde in meiner Antwort etwas hinzufügen.
Letharion
1
Erläuterung zu MongoDB. Sie können Ihre gesamte Datenbank nicht auf MongoDB umstellen . MongoDB ist etwas völlig anderes als ein DBMS wie MySQL und verwendet beispielsweise kein SQL. Sie können nur bestimmte steckbare Komponenten ersetzen und damit einen Teil Ihrer Daten in MongoDB speichern, z. B. Felder, Protokolle, Blöcke usw.
Berdir
@Letharion >> Cluster deine SQL-Datenbank. Liest aus einer Datenbank, schreibt in eine andere. Hier kann Pressflow Abhilfe schaffen. Wie kann das erreicht werden?
GoodSp33d
1
Gute Antwort! Definitiv. Schauen Sie sich dazu das Advanced CSS / JS Aggregation- Modul an, da meines Erachtens die Aggregation die Anforderungen für einzelne CSS- und JS-Dateien reduziert und so zur Leistungssteigerung beiträgt.
Wie Sie wissen,
23

Dies sind Notizen aus meinen Erfahrungen und können von den Erfahrungen anderer abweichen. Ich verwende überwiegend LAMP Stack und habe dies in meinen Vorschlägen berücksichtigt.

Daumenregeln für das Zwischenspeichern, denen ich im Allgemeinen folge.

  1. Einmal verarbeiten Mehrfach verwenden.
  2. Lebe mit veralteten Daten, wenn möglich
  3. Löschen Sie Caches selten und halten Sie sie sehr spezifisch.
  4. Wenn möglich, nehmen Sie die Änderungen auf der untersten Ebene des Stapels vor. LAMP - DCCc: Linux, Apache, MySQL, PHP, Drupal Core, Contrib und benutzerdefiniertes Modul.

Verbesserung der Leistung einer Drupal-Site (in aufsteigender Reihenfolge der Komplexität)

  1. Halten Sie den Kern, das Contrib-Modul und die Themen auf dem neuesten Stand. Ja, es ist wichtig.

  2. Installieren Sie APC auf Ihrem Server. (Nach oben verschoben, basierend auf einem Vorschlag von Letharion)

  3. Seiten- Caching: admin / config / development / performance Unterschied zwischen der minimalen Cache-Lebensdauer und dem Ablauf der zwischengespeicherten Seiten

  4. Block-Caching https://drupal.org/project/blockcache_alter Caching-Optionen für alle Blöcke.
  5. Aggregierte Javascript- und CSS-Dateien - Verbesserungen am Front-End https://www.drupal.org/project/advagg
  6. Deaktivieren Sie nicht benötigte Module. Jedes Modul erhöht die Menge an Code, die zum Laden einer Seite verfügbar sein muss. Und es erhöht auch die Anzahl der Suchvorgänge. Verwenden Sie nach Möglichkeit ein generisches Modul anstelle mehrerer Module, die bestimmte Funktionen ausführen.
  7. Inhalt von Ansichten zwischenspeichern - Inhaltsbezogenes Zwischenspeichern für Ansichten https://www.drupal.org/project/views_content_cache
  8. DB-Protokollierung deaktivieren - Verwenden Sie https://drupal.org/project/syslog_ng
  9. 404-Fehler reduzieren - http://www.brokenlinkcheck.com/
  10. Schnelle 404-Antworten - https://drupal.org/project/fast_404 - Versuchen Sie die Verarbeitung auf Serverebene.
  11. Clientseitige Validierungen - https://www.drupal.org/project/clientside_validation
  12. Bild komprimieren - https://www.drupal.org/project/imageapi_optimize
  13. Verspätetes Laden von Bildern - Laden Sie keine unnötigen Bilder - https://www.drupal.org/project/lazyloader
  14. Verwenden Sie Sprite Sheets - https://www.drupal.org/project/spritesheets

  15. Setzen Sie den Wert für die Mindestlebensdauer des Caches auf einen höheren Wert und löschen Sie die Caches für bestimmte Seiten mithilfe von Cache-Löschmodulen. - Wenn ich einen Knoten bearbeite / aktualisiere, gehen alle Seiten-Caches für anonyme Benutzer verloren

  16. Verwenden Sie das Entwicklungsmodul, um Abfragen zu überwachen.
  17. Umschreiben von Ansichten Abfragen / Vermeiden von Ansichten, wenn dies ein Overkill ist.
  18. XHProf - https://www.drupal.org/project/XHProf
  19. FPM, HHVM.
  20. DB Profiling and Tuning - https://www.drupal.org/project/dbtuner
  21. Boost verwenden , DB nicht booten, wenn nicht erforderlich. https://drupal.org/project/boost Für die meisten kleinen bis mittleren Websites ist Boost gut genug und Sie benötigen möglicherweise keine Reverse-Proxies oder so.
  22. Verwenden Sie CDNs - https://www.drupal.org/project/cdn Die Einrichtung ist einfach.
  23. Wenn Ihre Cache-Tabellen sehr umfangreich sind, verwenden Sie Memcached - Wenn Sie Memcached installieren und RAM dafür einrichten können, ist es nicht so komplex, wie es sich anhört.
  24. Etags - Richtige Konfiguration von Etags. https://developer.yahoo.com/blogs/ydnfiveblog/high-performance-sites-rule-13-configure-etags-7211.html
  25. Verwenden Sie Reverse Proxy Server - Lack (zumindest für Assets). Hilft sehr, wenn die meisten Ihrer Benutzer anonym sind.
  26. Komprimierte Übertragung - Aktivieren Sie die gzip-Komprimierung
  27. Keep Alive - Verwenden Sie nach Möglichkeit dauerhafte Verbindungen.
  28. Progressive JPEGS -
  29. CACHING IN CODE - Eatons Blog ist großartig. http://www.lullabot.com/blog/article/beginners-guide-caching-data-drupal-7
  30. Implementieren Sie die Cache-Erwärmung - https://www.drupal.org/project/cache_warmer - Cache Erwärmen Sie die Seiten, bevor der Endbenutzer sie aufruft.
  31. Master Slave DB Config - https://www.drupal.org/project/autoslave erleichtert Ihnen die Einrichtung.
  32. Datenbankcluster - https://stackoverflow.com/questions/1163216/database-cluster-and-load-balancing
  33. Load Balancer - http://de.wikipedia.org/wiki/Load_balancing_(computing)
  34. Verwenden Sie die heuristische Cache-Erwärmung - https://www.drupal.org/project/cache_graceful
  35. Zwischenspeicherung authentifizierter Benutzer - https://www.drupal.org/project/authcache
Gokul NK
quelle
Reposting der Antwort, die ich für drupal.stackexchange.com/questions/118990/… geschrieben hatte . Übrigens war es geschlossen, weil es zu breit war. Ich bin nicht sicher, ob es in diesen beiden Fragen einen großen Unterschied gibt :)
Gokul NK
18

Boost- Modul ist auch sehr nützlich, es erstellt statische Datei-Caches von Ihren Webseiten. Es ist vor allem für Websites mit vielen anonymen Nutzerverkehr.

Boost bietet statisches Seiten-Caching für Drupal und ermöglicht so eine erhebliche Steigerung der Leistung und Skalierbarkeit für Websites, die überwiegend anonymen Datenverkehr empfangen. Für Shared Hosting ist dies die beste Option, um die Leistung zu verbessern. Auf dedizierten Servern können Sie stattdessen auch Lack verwenden.

Apache wird vollständig unterstützt, wobei Nginx, Lighttpd und IIS 7 teilweise unterstützt werden. Boost zwischenspeichert & gzip komprimiert HTML, XML, Ajax, CSS und Javascript. Die Logik zum Erhöhen des Cache-Ablaufs ist weit fortgeschritten. Es ist ziemlich einfach, unterschiedliche Cache-Laufzeiten für verschiedene Teile Ihrer Site zu haben. Der eingebaute Crawler sorgt dafür, dass abgelaufene Inhalte schnell neu generiert werden und die Seite schnell geladen werden kann.

Beebee
quelle
1
Boost funktioniert für Drupal 7 jetzt großartig imao. Bei einer Shared-Hosting-Lösung ist dies ein ausgezeichneter Weg (da sie beispielsweise häufig keinen Lack zulassen).
Salbei
5

Wenn Sie einen SQLIte-Datenbanktreiber verwenden, müssen Sie möglicherweise die Festplattensynchronisierung deaktivieren.

/**
 * Implements hook_init().
 */
function HOOK_init() {
  db_query('PRAGMA synchronous = OFF');
}

Bei einigen Serverkonfigurationen wird die Leistung erheblich verbessert.

ya.teck
quelle
2
Da dies bei jedem Laden der Seite deaktiviert wurde, überlegte ich, ob es eine bessere Möglichkeit gibt, es dauerhaft zu deaktivieren. Sollte einige Zeit auf das Auschecken verbringen.
Gokul NK
1
Sie können dies in sites / default / settings.php tun, indem Sie dem Array $ databases ein Element 'init_commands' hinzufügen. Ich habe hier ein Beispiel für "PRAGMA synchronous = OFF" gefunden: bitacoles.enging.com/node/210
dinopmi
4

Das Geheimnis der Drupal-Leistung liegt im Zwischenspeichern und Befolgen der bewährten Methoden. Vorschläge:

Drupal-Backend

  • Aktivieren Sie das Caching im Abschnitt Leistung .
  • Überprüfen Sie die Module Performance und Performance and Scalability Checklist .
  • Überprüfen Sie die Leistungsoptimierungsoptionen und die Checkliste für Drupal 7 .
  • Deaktivieren Sie nicht verwendete und nicht produktive Module (z. B. Entwicklungs-, Ansichts-Benutzeroberfläche, Regel-Benutzeroberfläche usw.).
  • Deaktivieren Sie instabile Module.
  • Statistiken deaktivieren .
  • Deaktivieren Sie das Blog-Kernmodul und ersetzen Sie es durch syslog .
  • Deaktivieren Sie das Update Manager- Kernmodul.
  • Cron: Verwenden Sie Drupals eingebauten cron, nicht poormanscron (ziehen Sie Elysia oder Ultimate cron in Betracht ).
  • Ansichten: Verwenden Sie den Cache für Ansichten auf verschiedenen Ebenen (Datenbankabfrage, Markup, zeitbasiert).
  • Blöcke: Verwenden Sie die Blockzwischenspeicherung, wenn Ihre Ansicht ein Block ist (pro Seite, Benutzer usw.).
  • Blöcke: Überlegen Sie, ob Sie die Cache-Einstellungen pro Block mithilfe des Moduls " Cache-Änderung blockieren" anpassen möchten .
  • Panels: Verwenden Sie den Cache so oft wie möglich (für D7 PCC- und PHC- Module prüfen ).
  • Entität: Aktivieren Sie den Entitätscache .
  • Wenn Sie mehrere Umgebungen verwenden, sollten Sie das fehlende Modul in Betracht ziehen, um das Laden der Seite zu verbessern.
  • Aktivieren Sie das Seiten-Caching für authentifizierte Benutzer mit dem Authcache- Modul.
  • Vermeiden Sie Weiterleitungen, die die Benutzerfreundlichkeit beeinträchtigen.
  • Verbessern Sie die Cache-Invalidierung mit dem Expire- Modul.
  • Verwenden Sie PHP Profiling vor der Produktion (zB XDebug ).

Drupal-Frontend

  • HTTP-Anforderungen minimieren durch:
  • Erwägen Sie, JavaScript und CSS extern zu machen (in einigen Fällen geht es schneller).
  • Reduzieren Sie JavaScript und CSS (siehe: Speedy- Modul). Inline vermeiden.
  • Verwenden Sie beim Verweisen auf ein JS entweder deferoder asyncAttribute.
  • Minimieren Sie die Anzahl der Iframes.
  • Optimieren Sie Bilder, Schriftarten und CSS-Sprites, machen Sie das Favicon cachefähig und reduzieren Sie die Cookie-Größe.
  • Reduzieren Sie die Anzahl der DOM-Elemente und Cache-Verweise auf Elemente, auf die zugegriffen wird.
  • Verwenden Sie das Fast 404- Modul, um das Laden Ihrer 404-Seiten zu beschleunigen .
  • Aktivieren Sie die Aggregation und Zwischenspeicherung von Front-End-Ressourcen mit Advanced CSS / JS Aggregation .
  • Platziere Stylesheets oben und Skripte unten.
  • Fügen Sie einen Expires- oder einen Cache-Control- Header hinzu, und verwenden Sie auch ETags , um die Antworten zu reduzieren.
  • Verwenden Sie GET für AJAX und machen Sie sie zwischenspeicherbar.
  • Komponenten vor und nach dem Laden laden, um die Zeit zu nutzen, in der der Browser inaktiv ist.
  • Manchmal kann die Aufteilung von Komponenten auf mehrere Domänen zu einer Maximierung der parallelen Downloads führen.
  • Skalieren Sie keine Bilder in HTML und halten Sie die Komponenten unter 25 KB.
  • Vermeiden Sie Filter, CSS-Ausdrücke und HTML-Elemente mit leerem src oder href.
  • Verwenden Sie den Reverse-Proxy, um Ihre Webanforderungen zu debuggen (z . B. Charles ).
  • Verwenden Sie Tools wie Y-Slow und PhantomJS für grundlegende Leistungsprüfungen.
  • Verwenden Sie die Google PageSpeed- Tools, um Ihre Website zu analysieren und zu optimieren.
  • Lesen Sie mehr über die W3C Navigation Timing- Spezifikationen ( GitHub ).

PHP

  • Aktivieren Sie das PHP-Caching (z. B. OpCache , APC ) und optimieren Sie die Einstellungen.
  • Erwägen Sie die Verwendung von PHP-FPM anstelle von mod_php plus Nginx anstelle von Apache.

Datenbank

Server

  • Überprüfen Sie die empfohlenen Systemanforderungen für Drupal.
  • Überprüfen Sie die empfohlenen Webservereinstellungen für Drupal.
  • Überprüfen Sie die empfohlenen PHP-Konfigurationseinstellungen für Drupal.
  • Stellen Sie sicher, dass sich das Hosting auf schnellen Speichergeräten befindet (z. B. SSD).
  • Verwenden Sie dedizierte, schnelle und zuverlässige Server im Gegensatz zu Shared Hosting.
  • Installieren Sie Redis oder memcached (mit igbinary-Unterstützung) und konfigurieren Sie Drupal für die Verwendung.
  • Definieren Sie längere TTLs für Suchmaschinen (z. B. TTL von 24 Stunden verhindert, dass Bots den Server erreichen).
  • Reduzieren Sie DNS-Lookups (stellen Sie sicher, dass sie zwischengespeichert sind).

Stark frequentierte Websites

Wenn Sie eine hohe Auslastung Ihrer Website erwarten, verwenden Sie Lack. Erwägen Sie auch die Verwendung von CDN.

Weitere Informationen finden Sie unter: Praxiserfahrung beim Skalieren und Optimieren der Leistung


Weitere Ressourcen:

Kenorb
quelle
3

Es gibt ein Buch mit dem Namen High Performance Drupal , das Best Practices, Beispiele und ausführliche Erklärungen zur Lösung verschiedener Leistungs- und Skalierbarkeitsprobleme enthält. Sie erfahren, wie Sie Codierungs- und Infrastrukturtechniken auf Drupal-Interna, Anwendungsleistung, Datenbanken, Webserver und Leistungsanalyse anwenden.

Im Artikel Leistung und Skalierbarkeit in Drupal 7 finden Sie einige Beispiele zu Drupal 6 und Drupal 7 sowie die folgende Liste:

Performance- und Skalierbarkeitsprojekte für Drupal 7:

Adrian Cid Almaguer
quelle
2

Es wurden viele Verbesserungen vorgenommen, um die Leistung Ihrer Drupal-Site zu optimieren - aber nicht alle sind unerlässlich. Wir müssen uns nach Alternativen und Techniken umsehen, die zu einer optimierten Plattform von Drupal führen. Zwischenspeichern, ja, es ist eine Möglichkeit, die Website mit verschiedenen Mitteln zu optimieren, aber einige weitere Add-Ons und Tipps können Ihre Website erweitern und optimieren, ohne dass problemlose Prozesse erforderlich sind.

Wir haben kürzlich einen ähnlichen Artikel auf unserer Website veröffentlicht, von dem ich glaube, dass er Ihnen bei der Durchführung von Optimierungsarbeiten helfen kann.

Quelle: http://www.cloudreviews.com/blog/drupal-performance-optimization-tips

Sabih
quelle
2

Es gibt einige Möglichkeiten, die Drupal-Geschwindigkeit auf ein angemessenes Maß zu verbessern, indem keine neuen Module installiert werden. Ja, Drupal verfügt über eine Leistungskonfiguration.

  1. Sie können dies einrichten, indem Sie zu YourSiteDomain / admin / config / development / performance gehen
  2. Aktivieren Sie unter "Chaching" die Option "Seiten für anonyme Benutzer zwischenspeichern"
  3. Minimale Cache-Lebensdauer: 1 Tag (Wenn Sie keine regelmäßigen Updates durchführen)
  4. Ablauf der zwischengespeicherten Seiten: 1 Tag (Wenn Sie keine regelmäßigen Aktualisierungen vornehmen)
  5. Aktivieren Sie "Zwischengespeicherte Seiten komprimieren".
  6. Aktivieren Sie "CSS-Dateien aggregieren und komprimieren"
  7. "JavaScript-Dateien aggregieren" aktivieren

  8. Sobald diese Konfigurationen festgelegt sind, gehen Sie zu: YourSiteDomain / admin / reports / status

  9. Überprüfen Sie, ob Berechtigungsprobleme für die Verzeichnisse 'css' und 'js' vorliegen
  10. Korrigieren Sie die Berechtigung wie auf der Seite Statusbericht definiert

Und jetzt sind Sie mit der Geschwindigkeitsoptimierung für Ihre Drupal 7-Site fertig.

Es gibt nur wenige Online-Tools zum Testen der Geschwindigkeit. Stellen Sie sicher, dass Sie eines der Tools zur Geschwindigkeitskontrolle verwenden und einen Test durchführen, bevor Sie die obigen Einstellungen aktualisieren. Und nachdem Sie die Leistungseinstellung aktualisiert haben, führen Sie den Geschwindigkeitstest erneut durch. Sie werden definitiv eine Verbesserung sehen.

Pingdom und das HTTP Fox (FireFox-Plugin) sind die besten Tools, um die Geschwindigkeit der Site zu überprüfen.

Mit den obigen Einstellungen werden Ihre Seiten nicht nur für anonyme Benutzer zwischengespeichert, sondern auch die CSS- und JS-Dateien komprimiert. Beispiel: Wenn Ihre Site 80 Dateien lädt, veröffentlichen Sie diese Einstellungen. Die Anzahl der Anfragen wird um mindestens 50% gesenkt. Hier haben Sie also eine doppelte Geschwindigkeitsverbesserung auf Ihrer Drupal-Site.

UND
quelle
2

Als Backend-Entwickler gibt es immer Raum, Ihren Code zu verbessern, um die Leistung der Website zu steigern. Einige Richtlinien für Backend-Entwickler könnten sein:

1) Bereinigen Sie Ihre Watchdog-Tabelle

2) Missbrauchen Sie nicht die variable API

3) Stellen Sie weniger oder bessere HTTP-Anfragen

4) Halten Sie Ihr "Punktmodul" kurz

Wenn es um Font-End- und Site-Builder geht, kann noch viel mehr erreicht werden, aber es ist wichtig, die Leistung unter allen Gesichtspunkten zu berücksichtigen.

Quelle: Optimieren Sie, bevor Sie live gehen

Targoo
quelle
2

Eine nicht optimierte Drupal 7-Site mit 2 GB RAM kann ungefähr 20-25 Anfragen pro Sekunde zufriedenstellend bedienen. Wenn Sie darüber hinaus gehen möchten, müssen Sie die Website etwas optimieren. Was Sie optimieren, hängt davon ab, ob die meisten Benutzer auf der Website anonym oder authentifiziert sind. Hier sind die wichtigsten Maßnahmen zur Leistungsverbesserung:

Die Website dient hauptsächlich anonymen Nutzern:

1) Installieren und konfigurieren Sie auf jeden Fall APC, Memcache und Entitycache.

2) Stellen Sie den Varnish-Proxy vor den Webserver. Die Installation und Konfiguration dauert ca. 30 Minuten, verringert jedoch die Ladezeiten Ihrer Seite erheblich. Tatsächlich kann Varnish auf einem 2-GB-Computer ungefähr 300 Anforderungen pro Sekunde verarbeiten, wenn alle Seiten zwischengespeichert sind. Verwenden Sie das Expire-Modul, um nur ausgewählte Seiten beim Aktualisieren / Löschen von Inhalten zu löschen.

3) Verwenden Sie das Advanced CSS / JS Aggregation-Modul, um CSS- und JS-Dateien zu aggregieren. Versuchen Sie, alle JS-Dateien an den unteren Rand der Seite zu verschieben. Beachten Sie jedoch, dass dies Ihre Site beschädigen kann. Implementieren Sie dies nach gründlichen Tests in der Produktion. Experimentieren Sie auch mit Inlining für kritisches CSS. Nach meiner Erfahrung verkürzt sich die Ladezeit der Seite um etwa eine halbe Sekunde.

4) CSS / JS / Bilder sollten einen zukünftigen Verfallsheader haben. Dadurch wird sichergestellt, dass Browser nicht immer wieder dieselben CSS / JS / Bilder anfordern.

5) Stellen Sie sicher, dass der Webserver komprimierte Seiten / CSS / JS bereitstellt.

Nachdem Sie die obigen 5 Schritte ausgeführt haben, sollte Ihr 2 GB RAM-Server in der Lage sein, problemlos 50 Anforderungen pro Sekunde zu verarbeiten.

Die Website dient hauptsächlich authentifizierten Benutzern:

Die Optimierung einer solchen Site ist komplexer. Solche Websites fallen zu Optimierungszwecken in eine der beiden Unterkategorien:

(a) Die meisten Seiten der Website sind identisch, mit Ausnahme von 1 oder 2 Blöcken, die benutzerspezifische Informationen enthalten. Für zB Drupal Commerce Site.

(b) Die meisten Seiten sind vollständig auf den Benutzer zugeschnitten. Für zB Drupal Commons Site.

Wenn Ihre Website in Kategorie (a) fällt, wenden Sie die meisten der Techniken an, die wir für die Website erörtert haben, die hauptsächlich anonyme Benutzer bedient. Der einzige Unterschied besteht darin, dass Varnish für Seiten ohne Administratorrechte das SESSION-Cookie aus der Kopfzeile entfernen und zwischengespeicherte Seiten bereitstellen muss. Verwenden Sie das AJAX-Block-Modul, um mithilfe von AJAX Blöcke mit benutzerspezifischen Informationen zu servern. Auf diese Weise wird der größte Teil der Seite mit Varnish sehr schnell bereitgestellt, und dann werden benutzerspezifische Informationen über AJAX bereitgestellt.

Wenn Ihre Site in Kategorie (b) fällt, verwenden Sie das Authcache-Modul. Ich bevorzuge es, es nicht so oft wie möglich zu verwenden, da es ziemlich viel Konfiguration und Wartung erfordert. Aber es funktioniert wirklich gut. Es ist nicht so schnell wie die Verwendung von Varnish, kann jedoch 50 Anfragen pro Sekunde verarbeiten, nach denen Sie suchen.

Wenn Sie über das hinausgehen möchten, was wir hier besprochen haben, werfen Sie einen Blick auf die Checkliste zur Drupal-Leistungsoptimierung . Offenlegung: Es ist von mir geschrieben. Es enthält eine umfassende Liste von Maßnahmen, die Sie ergreifen können, um Ihre Drupal-Site blitzschnell zu machen.

Neerav Mehta
quelle