Registrar% da CPU por processo ao longo do tempo

39

Existe alguma maneira fácil no Windows de registrar% de tempo da CPU por processo ao longo do tempo em um arquivo para análise posterior?

Tanto quanto eu posso ver...

  1. O gerenciador de tarefas me mostra a% de CPU por processo, mas apenas visualmente - não há como salvar em um arquivo.
  2. O Perfmon permitirá que eu salve em um arquivo e crie adicionalmente um arquivo baseado em tempo (tirando instantâneos em intervalos de tempo especificados) - que é quase o que eu quero, exceto que, pelo que vejo, não pode quebrar o% CPU por processo.
  3. O Process Explorer permitirá que eu divida por processo, mas ele salvará o arquivo apenas como um instantâneo de um único ponto no tempo

Portanto, nada disso é exatamente o que eu preciso: preciso obter um arquivo que contenha algo como 'os 10 principais processos por CPU, a cada 15 segundos, até interromper o monitoramento' A razão pela qual eu preciso disso porque tenho uma máquina na qual algum processo está causando picos breves ocasionais no uso da CPU várias vezes ao dia e preciso descobrir qual processo é o culpado.

Alguma coisa pode fazer isso ou perdi algum recurso do perfmon ou do Process Explorer?

PhantomDrummer
fonte

Respostas:

37

O Process Monitor pode fazer isso por você.

Primeiro, convém ativar a coleção de eventos de criação de perfil:

insira a descrição da imagem aquiinsira a descrição da imagem aqui

Em seguida, basta coletar os dados pelo tempo que desejar (convém configurar filtros e ativar os eventos filtrados por descarte se planejar coletar por longos períodos de tempo). Em seguida, vá em Ferramentas -> Resumo da Atividade do Processo:

insira a descrição da imagem aqui

Agora você obterá uma lista de todos os processos ativos que gravou, com suas atividades ao longo do tempo. insira a descrição da imagem aqui

Você pode abrir os detalhes de um único processo (clicando duas vezes nele) e inspecionar os carimbos de data e hora para determinados eventos no gráfico:

insira a descrição da imagem aqui

Der Hochstapler
fonte
1
Obrigado. Isso é visualmente impressionante (eu temo pensar em quanta memória ela usa se você a deixar em funcionamento por um longo tempo). Certamente é útil para poder ver na tela o que os processos estavam fazendo. No entanto, se eu clicar em 'Salvar' na tela de resumo da atividade do processo, o que é salvo ainda é um instantâneo de ponto único no tempo, sem dados dependentes do tempo.
PhantomDrummer
@PhantomDrummer: Salvar e carregar arquivos PML funciona muito bem para mim. Todos os eventos gravados anteriormente são restaurados e disponíveis para análise após o carregamento de uma PML. Certifique-se de selecionar Todos os eventos ao salvar o arquivo. Caso simplesmente não queira funcionar, entre em contato e incluiremos mais detalhes na minha resposta. Boa sorte :)
Der Hochstapler
1
@PhantomDrummer: Vá para Opções -> Criação de perfil de eventos. Lá você pode definir o intervalo para 1s ou 100ms. Isso é o mais longe possível. Se o arquivo ainda crescer muito, você deverá configurar filtros mais rigorosos e ativar a opção Drop Filtered Events.
Der Hochstapler
1
O @Pacerier One é um gerenciador de tarefas, o outro registra as operações executadas pelas tarefas.
Der Hochstapler
6
Não há algo mais simples? Parece que você precisa aprender a usá-lo. Por algum cheque Eu só quero ter tempos de uso da CPU de processo quando o uso da CPU é maior do que X%
Darius.V