Compartilhar via


Solucionar problemas de latência usando logs da Análise de Armazenamento

O diagnóstico e a solução de problemas são habilidades essenciais para criar e dar suporte a aplicativos cliente com o Armazenamento do Azure.

Devido à natureza distribuída de um aplicativo do Azure, diagnosticar e solucionar problemas de desempenho e erros pode ser mais complexo do que em ambientes tradicionais.

As etapas a seguir demonstram como identificar e solucionar problemas de latência usando logs da Análise de Armazenamento do Azure e otimizar o aplicativo cliente.

  1. Baixe os logs de Análise de Armazenamento.

  2. Use o seguinte script do PowerShell para converter os logs de formato bruto em formato tabular:

    $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. O script iniciará uma janela de GUI na qual você pode filtrar as informações por colunas, conforme mostrado abaixo.

    Captura de tela da janela do analisador de log do Storage Analytic.

  4. Restrinja as entradas de log com base no tipo de operação e procure a entrada de log criada durante o período do problema.

    Captura de tela das entradas de log do tipo de operação.

  5. Durante o tempo em que o problema ocorreu, os seguintes valores são importantes:

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

    End-to-End Latency é calculado usando a seguinte equação:

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

    Calcule a latência do cliente usando a entrada de log:

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

      Exemplo: 8.453 – 391 = 8.062 ms

    A tabela a seguir fornece informações sobre os resultados de OperationType e RequestStatus de alta latência:

    Tipo de blob RequestStatus=
    Êxito
    RequestStatus=
    (SAS)NetworkError
    Recomendação
    GetBlob Sim Não Operação GetBlob: RequestStatus = Êxito
    GetBlob Não Sim Operação GetBlob: RequestStatus = (SAS)NetworkError
    PutBlob Sim Não Operação de colocação: RequestStatus = Êxito
    PutBlob Não Sim Operação de colocação: RequestStatus = (SAS)NetworkError

Resultados do status

GetBlob Operation: RequestStatus = Success

Verifique os seguintes valores, conforme mencionado na etapa 5 da seção Etapas recomendadas:

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

Em um GetBlob Operation com RequestStatus = Success, se Max Time for gasto em Client-Latency, isso indica que o Armazenamento do Azure está gastando um grande volume de tempo gravando dados no cliente. Esse atraso indica um problema do lado do cliente.

Recomendação:

  • Investigue o código em seu cliente.
  • Use o Wireshark, o Microsoft Mensagem Analyzer ou o Tcping para investigar os problemas de conectividade de rede do cliente.

GetBlob Operation: RequestStatus = (SAS)NetworkError

Verifique os seguintes valores, conforme mencionado na etapa 5 da seção Etapas recomendadas:

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

Em um GetBlob Operation com RequestStatus = (SAS)NetworkError, se Max Time for gasto em Client-Latency, o problema mais comum é que o cliente está se desconectando antes que um tempo limite expire no serviço de armazenamento.

Recomendação:

  • Investigue o código no cliente para entender porque e quando o cliente desconecta do serviço de armazenamento.
  • Use o Wireshark, o Microsoft Mensagem Analyzer ou o Tcping para investigar os problemas de conectividade de rede do cliente.

Put Operation: RequestStatus = Success

Verifique os seguintes valores, conforme mencionado na etapa 5 da seção Etapas recomendadas:

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

Em um Put Operation com RequestStatus = Success, se Max Time for gasto em Client-Latency, isso indica que o Cliente está demorando mais para enviar dados para o Armazenamento do Azure. Esse atraso indica um problema no Client-Side.

Recomendação:

  • Investigue o código em seu cliente.
  • Use o Wireshark, o Microsoft Mensagem Analyzer ou o Tcping para investigar os problemas de conectividade de rede do cliente.

Put Operation: RequestStatus = (SAS)NetworkError

Verifique os seguintes valores, conforme mencionado na etapa 5 da seção "Etapas recomendadas":

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

Em um PutBlob Operation com RequestStatus = (SAS)NetworkError, se Max Time for gasto em Client-Latency, o problema mais comum é que o cliente está se desconectando antes que um tempo limite expire no serviço de armazenamento.

Recomendação:

  • Investigue o código no cliente para entender porque e quando o cliente desconecta do serviço de armazenamento.
  • Use o Wireshark, o Microsoft Mensagem Analyzer ou o Tcping para investigar os problemas de conectividade de rede do cliente.

Aviso de isenção de responsabilidade para informações de terceiros

Os produtos de terceiros mencionados neste artigo são produzidos por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou não, do desempenho ou da confiabilidade desses produtos.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.