Best Practices für Leistungstests best-practices-for-performance-testing

CAUTION
AEM 6.4 hat das Ende der erweiterten Unterstützung erreicht und diese Dokumentation wird nicht mehr aktualisiert. Weitere Informationen finden Sie in unserer technische Unterstützung. Unterstützte Versionen suchen here.

Einführung introduction

Leistungstests sind ein wichtiger Bestandteil jeder AEM Implementierung. Je nach Kundenanforderungen können Leistungstests für Veröffentlichungsinstanzen, Autoreninstanzen oder beides durchgeführt werden.

In dieser Dokumentation werden die allgemeinen Strategien und Methoden für die Durchführung von Leistungstests sowie einige der Tools beschrieben, die von Adobe zur Prozessunterstützung zur Verfügung gestellt werden. Schließlich werden wir einige der in AEM 6 verfügbaren Tools analysieren, um die Leistungsoptimierung zu unterstützen, sowohl aus der Sicht der Code-Analyse als auch der Systemkonfiguration.

Simulieren der Realität simulating-reality

Wichtig bei der Durchführung von Leistungstests ist, sicherzustellen, dass Sie eine Produktionsumgebung so gut wie möglich nachahmen. Dies kann zwar oft schwierig sein, es ist jedoch unerlässlich, die Genauigkeit dieser Tests sicherzustellen. Bei der Erstellung von Leistungstests ist Folgendes zu berücksichtigen:

  • Produktionsähnliche Inhalte

Viele Leistungsmessungen in AEM, wie z. B. die Antwortzeit der Abfrage, können durch die Größe des Inhalts im System beeinflusst werden. Es ist wichtig sicherzustellen, dass die Testumgebung so nah wie möglich an einer Kopie der Produktionsdaten liegt.

  • Produktionscode

Die AEM und Hotfixes, die in der Produktion bereitgestellt werden, sollten in der Testumgebung gleich sein. Es ist auch wichtig, die Version des Codes zu testen, der in der Produktion bereitgestellt wird.

  • Produktionsähnliche Hardware- und Netzwerkkonfiguration

Die Tests sind ohne eine Umgebung ohne Bedeutung, die der Produktionsumgebung so ähnlich wie möglich ist. Idealerweise sollten die Hardwarespezifikationen, Netzwerkschnittstellen, Lastverteiler und CDN mit der Produktion in der Testumgebung identisch sein.

  • Produktionslast

Viele Leistungsprobleme treten erst auf, wenn das System stark ausgelastet ist. Gute Leistungstests sollten die Belastung simulieren, unter der die Produktionssysteme zu ihrem Spitzenwert liegen.

Festlegen von Zielen setting-goals

Bevor Sie mit Leistungstests beginnen, müssen Sie nicht funktionale Anforderungen festlegen, um die Lade- und Antwortzeiten anzugeben. Wenn Sie von einem vorhandenen System migrieren, stellen Sie sicher, dass die Antwortzeit Ihren aktuellen Produktionswerten ähnlich ist. Für die Last ist es am besten, die aktuelle Spitzenlast zu verdoppeln. Dadurch wird sichergestellt, dass die Website auch weiterhin gut funktionieren kann, wenn sie wächst.

Tools tools

Auf dem Markt ist eine Vielzahl von Tools für Leistungstests erhältlich. Stellen Sie beim Ausführen eines Lastgenerators sicher, dass die Computer, die die Tests durchführen, über ausreichend Netzwerkbrandbreite verfügen. Andernfalls wird keine zusätzliche Belastung in der getesteten Umgebung erzeugt, sobald die Testmaschine die Grenzen ihrer Verbindung erreicht.

Testwerkzeuge testing-tools

  • Mit dem Tough Day-Tool von Adobe können Lasten auf AEM-Instanzen erzeugt und Leistungsdaten erfasst werden. Das Entwicklungs-Team von Adobe AEM setzt dieses Tool für Auslastungstests beim eigentlichen AEM-Produkt ein. Die in Tough Day ausgeführten Skripte werden über Eigenschaftendateien und JMX-XML-Dateien konfiguriert. Weitere Informationen finden Sie unter Tough Day-Dokumentation.

  • AEM bietet vorkonfigurierte Tools, um problematische Abfragen, Anfragen und Fehlermeldungen schnell anzuzeigen. Weitere Informationen finden Sie unter Diagnosetools Abschnitt der Dokumentation zum Vorgangs-Dashboard.

  • Apache bietet ein Produkt mit dem Namen JMeter die für Leistungs- und Belastungstests sowie für funktionelles Verhalten verwendet werden können. Es handelt sich um Open-Source-Software und ist kostenlos zu verwenden, hat aber einen kleineren Funktionsumfang als Unternehmensprodukte und eine stärkere Lernkurve. JMeter können Sie auf der Apache-Website unter https://jmeter.apache.org/ herunterladen.

  • Load Runner ist ein Enterprise-Produkt für Auslastungstests. Eine kostenlose Evaluierungsversion ist verfügbar. Weitere Informationen finden Sie unter https://www.microfocus.com/en-us/products/loadrunner-load-testing/overview.

  • Cloud-basierte Tools zum Testen von Lasten, wie Neustar kann auch verwendet werden.

  • Beim Testen mobiler oder responsiver Websites muss ein separater Satz von Tools verwendet werden. Sie ermöglichen die Einschränkung der Netzwerkbandbreite und simulieren langsamere mobile Verbindungen wie 3G oder EDGE. Zu den gängigsten Tools gehören:

    • Network Link Conditioner mit einer benutzerfreundlichen Oberfläche und einer relativ niedrigen Ebene im Netzwerk-Stack. Es sind OS X- und iOS-Versionen verfügbar. 🔗
    • Charles, eine Web-Debugging-Proxy-Anwendung, die u. a. eine Netzwerkdrosselung ermöglicht. Es sind Windows-, OS X- und Linux-Versionen verfügbar. 🔗

Optimierungswerkzeuge optimization-tools

Überwachung

Die Überwachung der Leistung -Dokumentation ist eine gute Ressource für Tools und Methoden, die zur Diagnose von Problemen und zur Bestimmung von Optimierungsbereichen verwendet werden können.

Entwicklermodus in der Touch-Benutzeroberfläche

Eine der neuen Funktionen der Touch-Benutzeroberfläche von AEM 6 ist der Entwicklermodus. So wie Autoren zwischen Bearbeitungs- und Vorschaumodi wechseln können, können Entwickler in der Autoren-Benutzeroberfläche in den Entwicklermodus wechseln, um die Renderzeit für jede Komponente auf der Seite anzuzeigen und Stacktraces von Fehlern zu sehen. Weitere Informationen zum Entwicklermodus finden Sie in diesem CQ Gems-Präsentation.

Lesen der Anforderungsprotokolle mithilfe von rlog.jar

Für eine eingehendere Analyse der Anforderungsprotokolle auf einem AEM-System können die von AEM erzeugten request.log-Dateien mit rlog.jar durchsucht und sortiert werden. Diese JAR-Datei ist Teil der AEM-Installation im Ordner /crx-quickstart/opt/helpers. Weitere Informationen zum rlog-Tool und zum Anforderungsprotokoll im Allgemeinen finden Sie in der Überwachung und Wartung Dokumentation.

Tool "Abfrage erläutern"

Die Tool "Abfrage erläutern" in ACS AEM Tools können verwendet werden, um die Indizes anzuzeigen, die beim Ausführen einer Abfrage verwendet werden. Dies kann sehr nützlich sein, wenn langsame Abfragen optimiert werden.

PageSpeed-Tools

Die PageSpeed-Tools von Google bieten Website-Analysen zur Einhaltung der Best Practices in Bezug auf die seitenbezogene Leistung sowie ein Plug-in, das zur weiteren Optimierung neben dem Dispatcher in einer Apache-Instanz installiert werden kann. Weitere Informationen finden Sie auf der PageSpeed-Tools-Website.

Autorenumgebung author-environment

Durchführen von Tests performing-tests

Um Leistungstests in der Autorenumgebung durchzuführen, müssen Sie das Erlebnis von Produktionsautoren simulieren. Die Autoreninstallationen müssen also alle Komponenten, OSGi-Bundles, UI-Anpassungen, benutzerdefinierten Indizes und sonstigen Ergänzungen für die produktionsbezogenen Autoreninstanzen umfassen.

Es gibt viele Automatisierungs-Frameworks, die für Leistungs- und Belastungstests entwickelt wurden. Benutzerdefinierte Skripte können in diesen Tools aufgezeichnet und dann wiedergegeben werden, um eine Spitzenanzahl von Autoren zu simulieren, die gleichzeitig ähnliche Inhaltserstellung und Aktivierungsaktivitäten durchführen. Es wird empfohlen, das Tough Day-Tool zu verwenden, um Aktivitäten wie das Hochladen Tausender Assets oder das Aktivieren einer großen Anzahl von Seiten zu simulieren.

Für Umgebungen mit hohen Anforderungen an Asset-Ladevorgänge oder Seitenbearbeitung ist es unerlässlich, Tools wie Tough Day zu verwenden, um sicherzustellen, dass die Umgebung unter Spitzenlast effizient arbeitet. WebDAV ist ein Tool, für das kein Scripting erforderlich ist und mit dem große Mengen an Assets geladen werden können.

MongoDB-spezifische Schritte mongodb-specific-steps

Auf Systemen mit MongoDB-Backends stellt AEM mehrere JMX MBeans, die bei Belastungs- oder Leistungstests überwacht werden müssen:

  • Die Konsolidierte Cache-Statistiken MBean. Sie können wie folgt direkt darauf zugreifen:

https://server:port/system/console/jmx/org.apache.jackrabbit.oak%3Aid%3D6%2Cname%3D%22Consolidated+Cache+statistics%22%2Ctype%3D%22ConsolidatedCacheStats%22

Für den Cache mit der Bezeichnung Document-Diff sollte die Trefferrate bei einem Wert von über .90 liegen. Wenn die Trefferrate unter 90 % fällt, müssen Sie wahrscheinlich die DocumentNodeStoreService-Konfiguration ändern. Der Produktsupport von Adobe kann optimale Einstellungen für Ihre Umgebung empfehlen.

  • Die Oak-Repository-Statistiken Mbean. Sie können wie folgt direkt darauf zugreifen:

https://server:port/system/console/jmx/org.apache.jackrabbit.oak%3Aid%3D16%2Cname%3D%22Oak+Repository+Statistics%22%2Ctype%3D%22RepositoryStats%22

Die ObservationQueueMaxLength zeigt die Anzahl der Ereignisse in der Beobachtungswarteschlange von Oak in den letzten Stunden, Minuten, Sekunden und Wochen an. Die größte Anzahl von Ereignissen finden Sie im Abschnitt "pro Stunde". Diese Zahl muss mit der oak.observation.queue-length -Einstellung, die Sie im SlingRepositoryManager -Komponente in OSGi-Konsole. Wenn die höchste für die Beobachtungswarteschlange angezeigte Zahl die queue-length Einstellung, kontaktieren Sie Adobe Support für Unterstützung beim Erhöhen der Einstellung. Die Standardeinstellung ist 1,000, aber für die meisten Bereitstellungen ist normalerweise eine Anhebung auf 20.000 oder 50.000 erforderlich.

Veröffentlichungsumgebung publish-environment

Durchführen von Tests performing-tests-1

Der wichtigste Teil einer Bereitstellung, der Belastungstests unterzogen werden muss, ist der Endbenutzer, der sich der Veröffentlichungs- oder Dispatcher-Umgebung gegenübersieht.

Automatisierte Testwerkzeuge von Drittanbietern können zum Testen der Leistung der Website verwendet werden. Über diese Tools können Sie die Schritte aufzeichnen, die Benutzer auf der Website durchführen, und viele dieser Sitzungen gleichzeitig ausführen, um die für eine Produktionswebsite typische Last zu simulieren.

Die meisten Produktions-Websites verfügen über Optimierungen wie Dispatcher-Caching und ein Inhaltsbereitstellungsnetzwerk. Beim Testen müssen Sie sicherstellen, dass diese Optimierungen auch für die Testumgebung verfügbar sind. Zusätzlich zur Überwachung der Antwortzeiten für die Endbenutzer müssen Sie auch die Systemmetriken auf den Veröffentlichungs-Servern und Dispatchern überwachen, um sicherzustellen, dass das System nicht durch Hardware-Ressourcen eingeschränkt wird.

Auf einem System, das keine umfassende Personalisierung erfordert, sollte der Dispatcher die meisten Anforderungen zwischenspeichern. Daher sollte die Belastung der Veröffentlichungsinstanz relativ flach bleiben. Wenn ein hohes Maß an Personalisierung erforderlich ist, wird empfohlen, Technologien wie iFrames oder AJAX Anforderungen für den personalisierten Inhalt zu verwenden, um so viel Dispatcher-Caching wie möglich zu ermöglichen.

Für grundlegende Tests kann Apache Bench verwendet werden, um die Antwortzeiten von Webservern zu messen und die Last für die Messung von Dingen wie Speicherlecks zu erzeugen. Weitere Informationen finden Sie im Beispiel im Überwachungsdokumentation.

Beheben von Leistungsproblemen troubleshooting-performance-issues

Nach dem Ausführen von Leistungstests auf der Autoreninstanz müssen alle Probleme untersucht, diagnostiziert und behoben werden. Sie können bei der Durchführung von Analysen und der Problembehebung verschiedene Tools und Techniken verwenden:

  • Sie können die Protokoll zur Anforderungsleistung im Vorgangs-Dashboard. Mit diesem Tool können Sie langsame Seitenanforderungen identifizieren

  • Analysieren Sie langsame Abfragen mit dem Tool „Abfrageleistung“.

  • Achten Sie auf die Fehlermeldung auf Fehler oder Warnungen. Weitere Informationen finden Sie unter Protokollierung

  • Überwachen Sie die Hardware-Ressourcen des Systems, z. B. Speicher- und CPU-Auslastung, Datenträger-E/A oder Netzwerk-I/O. Diese Ressourcen sind häufig die Ursachen für Leistungsengpässe

  • Optimieren Sie die Architektur der Seiten und deren Adressierung, um die Verwendung von URL-Parametern zu minimieren und so viel Zwischenspeicherung wie möglich zu ermöglichen.

  • Befolgen Sie die Leistungsoptimierung und Tipps zur Leistungsoptimierung Dokumentation

  • Wenn beim Bearbeiten bestimmter Seiten oder Komponenten in Autoreninstanzen Probleme auftreten, verwenden Sie den Entwicklermodus der Touch-optimierten Benutzeroberfläche, um die betroffene Seite zu überprüfen. Dadurch erhalten Sie eine Aufschlüsselung der einzelnen Inhaltsbereiche auf der Seite sowie ihrer Ladezeit.

  • Minimieren Sie alle JS- und CSS-Dateien auf der Site. Weitere Informationen hierzu finden Sie in diesem Blogpost.

  • Entfernen Sie eingebettetes CSS und JS aus den Komponenten. Diese sollten in den Client-seitigen Bibliotheken enthalten und minimiert sein, um die Anzahl der zum Rendern der Seite benötigten Anforderungen zu minimieren.

  • Verwenden Sie Browser-Tools wie die Registerkarte "Netzwerk"von Chrome, um die Server-Anforderungen zu untersuchen und zu sehen, welche die längsten benötigen.

Nach Identifizierung von Problembereichen kann der Anwendungs-Code im Hinblick auf Leistungsoptimierungen untersucht werden. Sollten AEM-Standardfunktionen nicht ordnungsgemäß verwendet werden können, wenden Sie sich an den Adobe-Support, um Unterstützung zu erhalten.

recommendation-more-help
6a71a83d-c2e0-4ce7-a6aa-899aa3885b56