it-swarm.com.de

Wie verbessere ich die Leistung meiner Drupal7-Site?

Für jemanden, der neu bei Drupal ist, sehe ich, dass auf Drupal Caching viele Ressourcen verfügbar sind, aber ich bin nicht sicher, welche davon ich verwenden soll.

10
Gokul N K

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

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

  1. Einmal mehrmal verarbeiten.
  2. Lebe wenn möglich mit veralteten Daten
  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.

Verbessern Sie die Leistung einer Drupal Site (in zunehmender Reihenfolge der Komplexität)

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

  2. Installieren Sie APC auf Ihrem Server. (Auf Vorschlag von Letharion nach oben verschoben)

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

  4. Block-Caching https://drupal.org/project/blockcache_alter Caching-Optionen für alle Blöcke.
  5. Aggregierte Javascript- und CSS-Dateien - Front-End-Verbesserungen 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 Cache-Ansichten - Inhaltsbewusstes Caching für Ansichten https://www.drupal.org/project/views_content_cache
  8. DB-Protokollierung deaktivieren - Verwenden Sie https://drupal.org/project/syslog_ng
  9. Reduzieren Sie 404 Fehler - http://www.brokenlinkcheck.com/
  10. Schnelle 404-Antworten - https://drupal.org/project/fast_404 - Versuchen Sie es auf Serverebene.
  11. Clientseitige Validierungen - https://www.drupal.org/project/clientside_validation
  12. Bild komprimieren - https://www.drupal.org/project/imageapi_optimize
  13. Faules Laden von Bildern - Laden Sie keine unnötigen Bilder - https://www.drupal.org/project/lazyloader
  14. Sprite Sheets verwenden - https://www.drupal.org/project/spritesheets

  15. Setzen Sie den Wert für die minimale Cache-Lebensdauer auf eine höhere Zahl und verwenden Sie Cache-Löschmodule, um die Caches für bestimmte Seiten zu löschen - 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. Ansichten neu schreiben Abfragen/Ansichten vermeiden, wenn es 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. Verwenden Sie Boost , nicht Bootstrap DB, falls nicht erforderlich. https://drupal.org)/project/boost Für die meisten kleinen bis mittleren Sites 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 Es ist einfach einzurichten.
  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 - Konfigurieren Sie Etags richtig. https://developer.yahoo.com/blogs/ydnfiveblog/high-performance-sites-rule-13-configure-etags-7211.html
  25. Reverse Proxy Server verwenden - Lack (zumindest für Assets). Hilft sehr, wenn die meisten Ihrer Benutzer anonym sind.
  26. Komprimierte Übertragung - Aktivieren Sie die gzip-Komprimierung
  27. Am Leben bleiben - 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. Cache-Erwärmung implementieren - https://www.drupal.org/project/cache_warmer - Cache Erwärmen Sie die Seiten, bevor der Endbenutzer sie trifft.
  31. Master Slave DB Config - https://www.drupal.org/project/autoslave erleichtert Ihnen das Einrichten.
  32. Datenbankcluster - https://stackoverflow.com/questions/1163216/database-cluster-and-load-balancing
  33. Load Balancers - http://en.wikipedia.org/wiki/Load_balancing_ (Computing)
  34. Verwenden Sie die heuristische Cache-Erwärmung - https://www.drupal.org/project/cache_graceful
  35. Authentifiziertes Benutzer-Caching - https://www.drupal.org/project/authcache
26
Gokul N K

Die Datenbankschicht ist wichtig. Ich beschreibe einige Teile davon und die Grundlagen in dieser Präsentation http://goo.gl/30yi39

5
mikeytown2

Als Begleiter zu Gokuls Antwort würde ich mir überlegen, was Sie in Drupal (nicht nach Komplexität geordnet)) zwischenspeichern möchten:

Caching bedeutet, wiederholte Aktivitäten zu beschleunigen.

Die großen Wiederholungsaktionen auf einer Drupal Website) sind:

  • Eine Webseite aufrufen
  • Ausführen von PHP Code zum Erstellen einer Webseite
  • PHP ruft Elemente aus der Datenbank auf

Zwischenspeichern einer gesamten Webseite

Die größten Vorteile beim Zwischenspeichern sind die Suche nach einer Möglichkeit, eine gesamte Webseite zwischenzuspeichern, ohne jemals den Code PHP) auszuführen oder die Datenbank aufzurufen.

Sie können dies mit Lack oder Boost tun. Wenn ein Benutzer eine Seite aufruft, gibt er eine Kopie der Seite zurück, ohne jemals eine Berechnung durchzuführen.

Dies funktioniert jedoch nicht, wenn Teile der Seite unterschiedlich sein müssen (d. H. Benutzer melden sich an und ihr Name wird oben angezeigt).

Damit dies funktioniert, müssen Sie sich Authcache ansehen.

PHP-Caching

Sie können PHP mit APC zwischenspeichern, oder wenn Sie Version 5.5 oder höher haben, ist ein anderer Cache integriert.

Dies erfolgt serverseitig und bedeutet, dass Teile Ihres PHP-Codes gespeichert werden. Sie zwischenspeichern PHP für Drupal) Aber Sie interagieren technisch nicht mit Drupal.

Datenbank-Caching

Anrufe zum Abrufen von Informationen aus der Datenbank sind teuer.

Der häufigste Mechanismus zum Zwischenspeichern von Datenbanken ist memcache .

Dadurch werden Datenbankobjekte im RAM zwischengespeichert. Anstatt ein Datenbankobjekt auf der Festplatte aufzurufen, ziehen Sie es einfach aus dem RAM, was viel schneller ist).

3
Dominic Woodman