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.