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

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

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Métrica de desempenho .NET

O agente .NET da New Relic coleta métricas do runtime .NET sobre o desempenho do seu aplicativo. 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.

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 memórias métricas:

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.

Importante

Para o aplicativo .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 Performance Monitor Users e Performance Log Users . 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 Gen0 de coleta de lixo 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 Gen1 de coleta de lixo 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 Gen2 de coleta de lixo 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 LOH de coleta de lixo 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.