Beispiele für request.log-Analyse | AEM
Das request.log von Adobe Experience Manager (AEM) ist eine umfangreiche Informationsquelle, einschließlich der Antwortzeiten, die für die Analyse von Leistungsproblemen von entscheidender Bedeutung ist. Dieser Artikel enthält mehrere Beispiele, um diesen Punkt zu veranschaulichen.
Beschreibung description
Umgebung
Experience Manager 6.5
Problem/Symptome
Die Adobe Experience Manager (AEM) request.log
enthält verschiedene nützliche Informationen, z. B. die Antwortzeit, um Leistungsprobleme zu analysieren. Im Folgenden finden Sie eine Liste von Beispielen für Analysen mit Linux-Befehlen (einschließlich einiger externer Befehle wie Ruby [
1]
und datamash [
2]
).
Installationsanleitungen
[
1]
https://www.ruby-lang.org/en/documentation/installation/
[
2]
https://www.gnu.org/software/datamash/download/
Auflösung resolution
Inhaltsverzeichnis
A. Einleitung
- Format
request.log
B. Vorbereitungsschritte
- Datenbereinigung
- Neustart
- Anzahl der Zugriffe pro Stunde
- Maximale gleichzeitige Verarbeitung
- Aufteilen einer Protokolldatei
- Zusammenführen von Anforderungsdatensätzen und Antwortdatensätzen
C. Beispiele für Analysen
- Die schwersten Zugriffe
- Zugreift auf fehlende Antwort
- Langsame Zugriffe
- Zeitreihendaten der Antwortzeit
- Minimum, Mittel (Durchschnitt), Median, maximale Reaktionszeit
- Anzahl der Zugriffe pro Zeitraum
- Anzahl der Antwortstatus pro Zeitraum
- Häufigste URLs
access.log
Datensätze fürrequest.log
record
D. Schlussfolgerung
A. Einleitung
Das Format von request.log:
AEM 6.5 generiert request.log
standardmäßig im folgenden Format angezeigt. Aufgrund einer Systembegrenzung werden die Befehlszeilen in diesem Artikel als Bilder anstelle von Nur-Text angezeigt.
Beispiel für request.log
:
In diesem Artikel wird eine Zeile mit "->
" wird als "Anforderungsdatensatz"bezeichnet. Eine Zeile mit "<
-"ist ein "Antwortdatensatz".
Datensatz anfordern:
Wenn eine Anfrage von AEM empfangen wird, wird ein Anforderungsdatensatz protokolliert. Sie enthält das Datum und die Uhrzeit des Eingangs, die Anforderungs-ID, die Anforderungsmethode und die URL.
Antwortdatensatz:
Wenn AEM auf eine Anfrage antwortet, wird ein Antwortdatensatz protokolliert. Sie enthält das Datum und die Uhrzeit der Antwort, die Anfrage-ID, den Statuscode, den Inhaltstyp und die Antwortzeit (in Millisekunden).
Suchen Sie das entsprechende Handbuch unter Interpretieren von request.log.
B. Vorbereitungsschritte
Schritt 1. Datenbereinigung
Vor dem Eintauchen in die Analyse von request.log
ist es wichtig, die Protokolleinträge zu standardisieren.
Die erste sed
entfernt zusätzlichen Platz in den Inhalts-Typ der Antwortdatensätze, um eine falsche Feldtrennung mit Leerzeichen zu verhindern. Der Ruby-Befehl (siehe [
1]
oben zur Installation von Ruby) konvertiert das Datumsformat nach ISO 8601. Der Ruby-Befehl trennt außerdem Datum und Uhrzeit durch Leerzeichen anstelle eines Doppelpunkts.
Schritt 2. Neustart
Wenn AEM neu gestartet und eine Service Pack-Installation installiert wird, wird die Anforderungs-ID von zurückgesetzt request.log
. Die Anfrage zeichnet mit Anfrage auf ID = 0
gibt an, dass es diese Arten von Operationen geben könnte.
Im obigen Beispiel wurden Anfrage-IDs bei 13 auf 0 zurückgesetzt:08:49 und 13:26:13.
Schritt 3. Anzahl der Zugriffe pro Stunde
Zählen Sie die Anzahl der Zugriffe pro Stunde und den Zeitbereich der request.log
.
Schritt 4. Maximale gleichzeitige Verarbeitung
Die Anzahl der gleichzeitigen Verarbeitung hilft dabei, die Serverlast von AEM zu erraten.
Standardmäßig ist die maximale Anzahl gleichzeitiger Verbindungen für Jetty in AEM auf 200 festgelegt. Es gibt eine Verzögerung beim Freigeben des Sockets nach Abschluss der Antwort. Wenn die Anzahl der gleichzeitigen Verarbeitungen ca. 170 überschreitet, können keine neuen Anforderungen mehr akzeptiert werden.
Schritt 5. Aufteilen einer Protokolldatei
Die Anfrage-ID von request.log
wird zurückgesetzt, wenn AEM neu gestartet oder ein Service Pack installiert wird. Aufgrund dieses Verhaltens kann die Analyse falsch sein, wenn eine request.log
enthält solche Vorgänge. Um eine genaue Analyse durchzuführen und die gleichzeitig verarbeitete Dateigröße zu verringern, teilen Sie die request.log
Verwenden von Anforderungsdatensätzen mit der Anforderung ID = 0
.
Schritt 6. Zusammenführen von Anforderungsdatensätzen und Antwortdatensätzen
Die Verknüpfung von Anfrage- und Antwortdatensätzen mit der Anfrage-ID erleichtert den Einstieg in Leistungsprobleme. Diese zusammengeführte Protokolldatei wird in den späteren Beispielen verwendet.
Die letzte sed
fügt eine Platzhalterantwort zu Anfragedatensätzen hinzu, die keinen entsprechenden Antwortdatensatz aufweisen. Es kann auch Antwortdatensätze ohne Anfragedatensätze geben. Sie sind jedoch unwissbar, da sie normalerweise nicht Gegenstand von Untersuchungen sind.
Die zusammengeführte Protokolldatei sollte wie folgt aussehen:
C. Beispiele für Analysen
Beispiel 1. Die schwersten Zugriffe
Sortieren Sie die zusammengeführte Protokolldatei nach Antwortzeit in absteigender Reihenfolge, einschließlich Zugriffen ohne Antwort.
Beispiel 2. Zugreift auf fehlende Antwort
Extrahieren Sie mithilfe der Platzhalterantwortzeit auf die fehlenden Antwortdatensätze.
Wenn der Zeitpunkt des Empfangs von Zugriffen ohne Antwort mit einer erhöhten Server-Last korreliert wird, können diese Zugriffe Leistungsprobleme ausgelöst haben.
Beispiel 3. Langsame Zugriffe
Extrahieren Sie Zugriffe, die länger als 10 Sekunden dauerten.
Wenn die Anzahl der Treffer zu hoch ist, ersetzen Sie [ 0-9] {5}
mit [ 0-9] {6}
im grep
-Befehl zum Eingrenzen auf Zugriffe, die länger als 100 Sekunden dauerten.
Beispiel 4. Zeitreihendaten der Antwortzeit
Zum Erstellen von Diagrammen ist es nützlich, nur den Zeitstempel und die Antwortzeit aus den Daten zu extrahieren.
Wenn Sie keine Zugriffe zulassen, die sofort reagiert haben, werden die Daten effizienter. Im folgenden Beispiel wird der Zugriff extrahiert, der mehr als eine Sekunde dauerte.
Beispiel 5. Minimum, Mittel (Durchschnitt), Median, maximale Reaktionszeit
Im obigen Beispiel wird der Befehl datamash (https://www.gnu.org/software/datamash/) für die statistische Verarbeitung verwendet. Wenn das Protokoll Zugriffe ohne Antwort enthält, beeinflusst der Platzhalterwert das Ergebnis.
Beispiel 6. Anzahl der Zugriffe pro Zeitraum
Zählen Sie die Anzahl der Zugriffe pro zehn Minuten. Das Ergebnis hilft dabei festzustellen, ob ein Leistungsproblem durch großen Traffic verursacht wurde.
Im folgenden Beispiel werden die Daten auf nur POST-Anfragen reduziert. Ein typisches Anwendungsbeispiel besteht darin, zu ermitteln, ob eine Konzentration von Inhaltserstellung oder -replikation auf die Publish-Ebene vorliegt.
Beispiel 7. Anzahl der Antwortstatus pro Zeitraum
Erstellen Sie mit dem Befehl datamash eine Tabelle mit der Anzahl der einzelnen Antwortstatus pro zehn Minuten.
Beispiel 8. Häufigste URLs
Drucken Sie die drei wichtigsten URLs, auf die am häufigsten pro zehn Minuten zugegriffen wurde.
Beispiel 9. access.log-Einträge für einen request.log-Datensatz
Suche access.log
für Datensätze, die einer bestimmten Anfrage-ID entsprechen.
Wenn mehrere Zugriffe auf dieselbe URL gleichzeitig erfolgt sind, zeigt das Ergebnis mehrere access.log
Datensätze für eine einzige Anfrage-ID.
D. Schlussfolgerung
Die Beispiele in diesem Artikel sollen Ihnen bei der Analyse Ihrer Leistungsprobleme helfen.
Die aufgeführten Beispiele wurden mit CentOS 7.5 und Ubuntu 22.04LTS getestet, funktionieren jedoch möglicherweise nicht wie erwartet in Abhängigkeit von Ihrer Umgebung, wie z. B. verschiedenen Versionen oder Variationen der Befehle. Passen Sie sie entsprechend an die in Ihrer Umgebung installierten Befehle an.