Sessões
O WPR (Gravador de Desempenho do Windows) estende o ETW (Rastreamento de Eventos para Windows). Uma sessão de log do ETW é uma coleção de buffers na memória que aceita eventos por meio da API (interface de programação de aplicativo) do provedor ETW. Esses buffers normalmente não são paginado e são gerenciados pelo kernel. O ETW atribui um buffer a cada processador. A geração e o buffer de eventos ETW são livres de bloqueio para permitir que o ETW registre todos os tipos de eventos.
Sempre que o ETW chama o método EventWrite , o ETW reserva espaço no buffer atual que o ETW alocou para o processador que está executando o thread de chamada. Em seguida, o ETW copia o cabeçalho do evento e os dados do usuário nesse espaço. Quando o buffer está cheio, o ETW libera o buffer para o arquivo de log da sessão de registro em log ou para o consumidor de streaming em tempo real. O ETW atribui um buffer gratuito a esse processador.
Se a taxa de transferência de log exceder a capacidade do flusher de liberar buffers, todo o espaço de buffer disponível na sessão de registro em log poderá ficar indisponível. Por exemplo, isso pode ocorrer porque a taxa de transferência de gravação de disco é menor que a taxa de transferência do evento de entrada. Isso faz com que EventWrite gere um erro de ERROR_NOT_ENOUGH_MEMORY e perca os dados do evento. Nesses casos, o ETW incrementa a propriedade EventsLost da sessão de registro em log para que os consumidores possam ver a perda de dados.
Para obter mais informações sobre como evitar a perda de eventos em uma gravação, consulte Evitar eventos perdidos.
Fazer logon na memória ou em um arquivo
Você pode configurar perfis para registrar os dados do evento em buffers na memória ou em um arquivo. O modo de buffer é uma sessão circular na memória. Você pode salvar o conteúdo desta sessão como um instantâneo em um arquivo ETL (log de rastreamento de eventos) na solicitação. O WPR não libera o conteúdo do espaço de buffer na memória quando você salva o conteúdo.
Você pode deixar as sessões do modo de buffer ativas constantemente. Isso é especialmente útil se você não souber quando o comportamento de interesse ocorrerá. Escolha o modo de buffer quando o espaço de buffer circular necessário for pequeno o suficiente para ser mantido na memória. Arquivos de log sequenciais são melhores para cenários controlados. Por exemplo, você pode usar arquivos de log sequenciais para teste de regressão ou quando a ocorrência do comportamento de interesse é mais fácil de prever.
Para obter mais informações sobre opções de registro em log, consulte Modo de registro em log.
Perfis de Gravação
Um perfil de gravação controla cada sessão. O perfil pode ser um perfil interno ou um perfil definido pelo usuário. Para obter mais informações, consulte Gravando perfis.
Tamanho do Buffer
O tamanho do buffer é importante para controlar a eficiência de E/S e garantir que a WPR não ignore eventos grandes. Buffers muito pequenos podem reduzir a eficiência de gravação de E/S. Recomendamos um tamanho mínimo de buffer de 64 KB ou 128 KB para promover um bom desempenho de gravação e reduzir a sobrecarga de disco e eventos perdidos. O tamanho do buffer determina a duração máxima de uma gravação. O ETW limita o maior tamanho de evento a aproximadamente 64 KB.
Coletores
Você deve definir um coletor de sistema e um ou mais coletores de eventos para uma sessão no perfil de gravação. O nome do coletor deve ser exclusivo para o sistema e o sistema deve ter acesso de gravação exclusivo ao arquivo de log. O nome do arquivo de log também deve ser exclusivo entre os nomes de arquivo de todos os coletores. O WPR não expande variáveis de ambiente, portanto, o caminho para o arquivo de log deve ser especificado sem variáveis de ambiente. Para obter mais informações, consulte 1. Definições do coletor.
Provedores
As sessões de registro em log são coletadas de um conjunto definido de provedores de sistema e de eventos. Esse é um item importante a ser configurado por sessão. A maioria dos provedores pode ter uma relação muitos para muitos com sessões. Provedores especiais são necessários para alguns eventos, como eventos de kernel ou heap. Para obter mais informações, consulte Provedores.