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?
7
6
performance
Bruce Dou
quelle
quelle
Antworten:
Caching, Caching und Caching.
Einige Vorschläge, die ich zuvor zu einer ähnlichen Frage gemacht habe, machen weiter
quelle
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.
Verbesserung der Leistung einer Drupal-Site (in aufsteigender Reihenfolge der Komplexität)
Halten Sie den Kern, das Contrib-Modul und die Themen auf dem neuesten Stand. Ja, es ist wichtig.
Installieren Sie APC auf Ihrem Server. (Nach oben verschoben, basierend auf einem Vorschlag von Letharion)
Seiten- Caching: admin / config / development / performance Unterschied zwischen der minimalen Cache-Lebensdauer und dem Ablauf der zwischengespeicherten Seiten
Verwenden Sie Sprite Sheets - https://www.drupal.org/project/spritesheets
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
quelle
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.
quelle
Wenn Sie einen SQLIte-Datenbanktreiber verwenden, müssen Sie möglicherweise die Festplattensynchronisierung deaktivieren.
Bei einigen Serverkonfigurationen wird die Leistung erheblich verbessert.
quelle
Das Geheimnis der Drupal-Leistung liegt im Zwischenspeichern und Befolgen der bewährten Methoden. Vorschläge:
Drupal-Backend
Drupal-Frontend
defer
oderasync
Attribute.PHP
Datenbank
Server
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:
quelle
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:
quelle
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
quelle
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.
"JavaScript-Dateien aggregieren" aktivieren
Sobald diese Konfigurationen festgelegt sind, gehen Sie zu: YourSiteDomain / admin / reports / status
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.
quelle
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
quelle
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.
quelle