Freigeben über


Behandeln von Latenzproblemen mithilfe von Storage Analytics-Protokollen

Diagnose und Problembehandlung sind wichtige Fähigkeiten zum Erstellen und Unterstützen von Clientanwendungen mit Azure Storage.

Aufgrund der dezentralen Natur einer Azure-Anwendung kann sich die Diagnose und Behebung sowohl von Fehlern als auch Leistungsproblemen als komplexer erweisen als in herkömmlichen Umgebungen.

Die folgenden Schritte veranschaulichen, wie Sie Latenzprobleme mithilfe von Azure Storage Analytics-Protokollen identifizieren und beheben und die Clientanwendung optimieren.

  1. Laden Sie die Storage Analytics-Protokolle herunter.

  2. Verwenden Sie das folgende PowerShell-Skript, um die Protokolle im Rohdatenformat in ein Tabellenformat zu konvertieren:

    $Columns = 
         (   "version-number",
             "request-start-time",
             "operation-type",
             "request-status",
             "http-status-code",
             "end-to-end-latency-in-ms",
             "server-latency-in-ms",
             "authentication-type",
             "requester-account-name",
             "owner-account-name",
             "service-type",
             "request-url",
             "requested-object-key",
             "request-id-header",
             "operation-count",
             "requester-ip-address",
             "request-version-header",
             "request-header-size",
             "request-packet-size",
             "response-header-size",
             "response-packet-size",
             "request-content-length",
             "request-md5",
             "server-md5",
             "etag-identifier",
             "last-modified-time",
             "conditions-used",
             "user-agent-header",
             "referrer-header",
             "client-request-id"
         )
    
    $logs = Import-Csv "REPLACE THIS WITH FILE PATH" -Delimiter ";" -Header $Columns
    
    $logs | Out-GridView -Title "Storage Analytic Log Parser"
    
  3. Das Skript startet ein GUI-Fenster, in dem Sie die Informationen wie unten gezeigt nach Spalten filtern können.

    Screenshot des Speicheranalyseprotokoll-Parser-Fensters.

  4. Schränken Sie die Protokolleinträge basierend auf dem Vorgangstyp ein, und suchen Sie nach dem Protokolleintrag, der während des Zeitrahmens des Problems erstellt wurde.

    Screenshot der Einträge des Vorgangstypprotokolls.

  5. Folgende Werte sind während des Zeitraums, in dem das Problem auftrat, von Bedeutung:

    • Operation-type = GetBlob
    • request-status = SASNetworkError
    • End-to-End-Latency-In-Ms = 8,453
    • Server-Latency-In-Ms = 391

    End-to-End Latency wird mit der folgenden Formel berechnet:

    • End-to-End Latency = Server-Latency + Client Latency

    Berechnen Sie die Clientlatenz anhand des Protokolleintrags:

    • Client Latency = End-to-End LatencyServer-Latency

      Beispiel: 8.453 – 391 = 8.062 ms

    Die folgende Tabelle enthält Informationen zu den Ergebnissen von OperationType und RequestStatus mit hoher Latenz:

    Blobtyp RequestStatus=
    Erfolg
    RequestStatus=
    (SAS)NetworkError
    Empfehlung
    GetBlob Ja Nein GetBlob Operation: RequestStatus = Success
    GetBlob Nein Ja GetBlob Operation: RequestStatus = (SAS)NetworkError
    PutBlob Ja Nein Put Operation: RequestStatus = Success
    PutBlob Nein Ja Put Operation: RequestStatus = (SAS)NetworkError

Statusergebnisse

GetBlob-Vorgang: RequestStatus = Success

Überprüfen Sie die folgenden Werte, wie in Schritt 5 des Abschnitts "Empfohlene Schritte " erwähnt:

  • End-to-End Latency
  • Server-Latency
  • Client-Latency

In einem GetBlob Operation With mit RequestStatus = Success, wenn Max Time sie in verwendet Client-Latencywird , gibt dies an, dass Azure Storage eine große Menge Zeit für das Schreiben von Daten in den Client verbringt. Diese Verzögerung gibt ein clientseitiges Problem an.

Empfehlung:

  • Untersuchen Sie den Code in Ihrem Client.
  • Verwenden Sie Wireshark, Microsoft Message Analyzer oder TCPing, um Netzwerkverbindungsprobleme des Client zu untersuchen.

GetBlob-Vorgang: RequestStatus = (SAS)NetworkError

Überprüfen Sie die folgenden Werte, wie in Schritt 5 des Abschnitts "Empfohlene Schritte " erwähnt:

  • End-to-End Latency
  • Server-Latency
  • Client-Latency

In einem GetBlob Operation With mit RequestStatus = (SAS)NetworkError, wenn Max Time sie in ausgegeben Client-Latencywird , besteht das häufigste Problem darin, dass der Client die Verbindung trennt, bevor ein Timeout im Speicherdienst abläuft.

Empfehlung:

  • Untersuchen Sie den Code in Ihrem Client, um herauszufinden, warum und wann der Client die Verbindung zum Speicherdienst abbricht.
  • Verwenden Sie Wireshark, Microsoft Message Analyzer oder TCPing, um Netzwerkverbindungsprobleme des Client zu untersuchen.

Put-Vorgang: RequestStatus = Success

Überprüfen Sie die folgenden Werte, wie in Schritt 5 des Abschnitts "Empfohlene Schritte " erwähnt:

  • End-to-End Latency
  • Server-Latency
  • Client-Latency

In einem Put Operation Mit - RequestStatus = Successwenn in - Client-Latencygibt Max Time dies an, dass der Client mehr Zeit für das Senden von Daten an den Azure Storage in Anspruch nimmt. Diese Verzögerung deutet auf ein clientseitiges Problem hin.

Empfehlung:

  • Untersuchen Sie den Code in Ihrem Client.
  • Verwenden Sie Wireshark, Microsoft Message Analyzer oder TCPing, um Netzwerkverbindungsprobleme des Client zu untersuchen.

Put-Vorgang: RequestStatus = (SAS)NetworkError

Überprüfen Sie die folgenden Werte, wie es in Schritt 5 des Abschnitts „Empfohlene Schritte“ angegeben ist:

  • End-to-End Latency
  • Server-Latency
  • Client-Latency

In einem PutBlob Operation With mit RequestStatus = (SAS)NetworkError, wenn Max Time sie in ausgegeben Client-Latencywird , besteht das häufigste Problem darin, dass der Client die Verbindung trennt, bevor ein Timeout im Speicherdienst abläuft.

Empfehlung:

  • Untersuchen Sie den Code in Ihrem Client, um herauszufinden, warum und wann der Client die Verbindung zum Speicherdienst abbricht.
  • Verwenden Sie Wireshark, Microsoft Message Analyzer oder TCPing, um Netzwerkverbindungsprobleme des Client zu untersuchen.

Informationen zum Haftungsausschluss von Drittanbietern

Die in diesem Artikel genannten Drittanbieterprodukte stammen von Herstellern, die von Microsoft unabhängig sind. Microsoft gewährt keine implizite oder sonstige Garantie in Bezug auf die Leistung oder Zuverlässigkeit dieser Produkte.

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.