• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Criar um problema

Métrica de desempenho .NET

O agente .NET da New Relic coleta métricas do runtime .NET sobre o desempenho da sua aplicação. Essas métricas podem fornecer insights sobre quanta CPU e memória um aplicativo consome, bem como como o desempenho de um aplicativo pode ser afetado pela coleta de lixo e pela contenção de recursos do pool de threads.

O conjunto completo de métricas de desempenho do .NET está disponível nas versões 8.20 e superiores do agente .NET.

Você pode ver essas métricas em one.newrelic.com > All capabilities > APM & services. Selecione um aplicativo e vá para More views > Dotnet VMs.

Você também pode visualizar essas métricas por:

Métrica de CPU

As seguintes métricas de CPU são coletadas:

  • CPU/User/Utilization

    A porcentagem de CPU consumida por esse processo.

  • CPU/User Time

    A quantidade de tempo que o processo gastou executando o código do aplicativo.

Métrica de memória

São coletadas as seguintes métricas de memória:

  • Memory/Physical

    A quantidade de memória privada (física), em MB, alocada para o processo.

  • Memory/WorkingSet

    Quantidade de memória física alocada para o processo.

Métrica de coleta de lixo

O coletor de lixo .NET é executado em segundo plano e é responsável por identificar e recuperar memória vinculada a objetos que não são mais referenciados por um aplicativo. A métrica a seguir pode ser útil na identificação de padrões de alocação de objetos e potenciais cenários de sobrealocação. Este artigo explica melhor os fundamentos da coleta de lixo no .NET.

Dica

As métricas de coleta de lixo estão disponíveis para:

  • Todas as versões do framework .NET
  • .NET Core 3.0 e superior.

Importante

Para aplicativos .NET framework , o usuário do Windows sob o qual seu aplicativo é executado deve ter acesso aos dados do contador de desempenho do Windows. Geralmente isso é feito adicionando o usuário aos grupos "desempenho monitor usuário" e "desempenho log usuário". Permissões insuficientes farão com que o agente não colete a métrica de coleta de lixo.

Métrica geral

Adicionalmente são coletadas as seguintes métricas de coleta de lixo:

  • GC/Handles

    O número de referências a objetos.

  • GC/Induced

    Normalmente, o tempo de execução executa a coleta de lixo automaticamente. Esta métrica identifica o número de vezes que a Coleta de Lixo foi invocada manualmente por uma chamada explícita para GC.Collect no código do aplicativo.

  • GC/PercentTimeInGC

    (somente framework .NET)
    A porcentagem de tempo decorrido que o tempo de execução do .NET gastou executando a coleta de lixo desde o último ciclo de coleta de lixo.

Geração - 0 heap

As seguintes métricas GC Gen0 são coletadas:

  • GC/Gen0/Size

    A quantidade de memória (em MB) que está disponível para ser alocada na Geração 0. Isso não indica a quantidade de memória que está sendo usada pela Geração 0, mas sim o máximo disponível para ser alocada.

  • GC/Gen0/Promoted

    A quantidade de memória (em MB) que sobreviveu à coleta de lixo e foi promovida de Gen0 para Gen1. A memória sobrevive à coleta de lixo quando há uma referência ativa a ela.

  • GC/Gen0/Collections

    O número de vezes que a Coleta de Lixo da Geração 0 foi executada pelo coletor de lixo.

Geração - 1 pilha

As seguintes métricas do GC Gen1 são coletadas:

  • GC/Gen1/Size

    A quantidade de memória (em MB) usada no heap da Geração 1. Isso difere de Gen0/Size, que mede a quantidade máxima de memória disponível para o heap da geração 0.

  • GC/Gen1/Promoted

    A quantidade de memória (em MB) que sobreviveu à coleta de lixo e foi promovida da Gen1 para a Gen2. A memória sobrevive à coleta de lixo quando há uma referência ativa a ela.

  • GC/Gen1/Collections

    O número de vezes que a Coleta de Lixo da Geração 1 foi executada pelo coletor de lixo.

Geração - 2 pilhas

As seguintes métricas do GC Gen2 são coletadas:

  • GC/Gen2/Size

    A quantidade de memória (em MB) que está sendo usada pelo Heap Gen2.

  • GC/Gen2/Survived

    (somente .NET Core)
    A quantidade de memória (em MB) que sobreviveu à coleta de lixo. A memória sobrevive à coleta de lixo quando há uma referência ativa a ela. Ao contrário da Gen0 e da Gen1, a memória que sobrevive à coleta de lixo não é promovida.

  • GC/Gen2/Collections

    O número de vezes que a Coleta de Lixo da Geração 2 foi executada pelo coletor de lixo.

Pilha de objetos grandes (LOH)

As seguintes métricas GC LOH são coletadas:

  • GC/LOH/Size

    A quantidade de memória (em MB) que está sendo usada pelo Large Object Heap (LOH). No .NET Core, o heap de objetos grandes às vezes é chamado de Gen3.

  • GC/LOH/Survived

    (Somente .NET Core) A quantidade de memória (em MB) que sobreviveu à coleta de lixo. A memória sobrevive à coleta de lixo quando há uma referência ativa a ela. Ao contrário da Gen0 e da Gen1, a memória que sobrevive à coleta de lixo não é promovida.

Métrica do pool de threads gerenciado

O tempo de execução do .NET gerencia um conjunto de threads. A métrica a seguir fornece visibilidade do desempenho de um aplicativo em termos de pool de threads e pode ajudar a identificar áreas de escassez de pool de threads. A privação/contenção do pool de threads ocorre quando não há threads suficientes disponíveis para processar as solicitações feitas por um aplicativo. O artigo a seguir descreve os vários recursos do pool de threads gerenciados. Observe que essas métricas não incluem informações sobre threads que não são gerenciados pelo pool de threads.

Threads de trabalho

Threads de trabalho são threads vinculados à CPU empregados para executar trabalho em nome de um processo.

  • Threadpool/Worker/Available

    Identifica o número de threads gerenciados disponíveis para o processo. Números consistentemente baixos indicam um cenário potencial de fome.

  • Threadpool/Worker/InUse

    Identifica o número de threads de trabalho atualmente em uso pelo processo.

Tópicos de conclusão

Threads de conclusão, às vezes chamados de threads de E/S, são empregados para monitor a conclusão de operações de E/S.

  • Threadpool/Completion/Available

    Esta métrica identifica o número de threads atualmente disponíveis para o processo. Números consistentemente baixos indicam um cenário potencial de fome.

  • Threadpool/Completion/InUse

    Esta métrica identifica o número de threads de conclusão atualmente em uso pelo processo.

Taxas de transferência

Taxas de transferência métrica medem quanto trabalho foi solicitado para ser executado em um thread diferente, a quantidade de trabalho que foi iniciado e quanto trabalho está aguardando que um recurso do pool de threads fique disponível.

  • Threadpool/Throughput/Requested

    Identifica o número de vezes que o trabalho foi solicitado para ser executado em um encadeamento gerenciado de conjunto de encadeamentos diferente.

  • Threadpool/Throughput/Started

    Identifica o número de itens de trabalho solicitados para serem executados em um thread separado que iniciou a execução.

  • Threadpool/Throughput/QueueLength

    Identifica o número de itens de trabalho que foram solicitados, mas estão aguardando para serem iniciados. Os números que aumentam consistentemente indicam uma situação potencial de falta de pool de threads. O artigo a seguir descreve como modificar o número de threads disponíveis para um aplicativo.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.