Como posso depurar o uso periódico de memória de 100% pelo services.exe?

0

Estou executando o Windows 7 SP1 em um MacBook Pro por meio do Boot Camp (ou seja, ele é inicializado nativamente).

Recentemente o services.exe começou exibindo um comportamento em que a cada 15 minutos ele aumentará ao longo de 1-2 minutos para usar toda a memória disponível no sistema (no meu caso, todos os 8GB de memória). Ele ficará lá por alguns minutos e depois voltará ao normal novamente.

O processo em si vai de usar ~ 40MB de memória para ~ 5GB + de memória e depois voltar para ~ 40MB.

Eu recebi um despejo do processo enquanto ele aumentava usando procdump e o arquivo de 3 GB continha dados repetidos. Parecia que os ponteiros funcionavam ou retornavam endereços quando eu olhei para ele com windbg .

Eu também dei uma olhada com procmon , mas os dados não eram muito esclarecedores - não havia muito o que olhar e o que estava lá parecia normal.

O que eu estou procurando são ponteiros sobre como melhor analisar o uso de memória por um aplicativo para que eu possa tentar descobrir o que está causando esse comportamento.

    
por Beau 13.09.2011 / 00:30

2 respostas

2

Ok. Se isso acontecer aproximadamente a cada 15 minutos, você pode esperar para que isso aconteça e agir rapidamente. Não é necessário descarregar o processo.

Services.exe é o processo que inicia os serviços. Os serviços não são executados por si mesmos, eles são hospedados pelos processos svchost.exe .

Então, para saber por que isso está acontecendo, por que sua máquina está criando essa RAM, você precisa saber qual serviço está causando isso.

Para isso, você pode usar a ferramenta Microsoft Sysinternals chamada Process Explorer . Com esta ferramenta você pode ordenar o processo pela memória e mais interessante se você clicar em um processo svchost.exe você será capaz de ver quais serviços ele está rodando. No Process Explorer, você pode ver o processo por árvore de pais e filho, para que você possa ver qual processo filho do qual o svchost está causando o problema.

Com o Procesx Explorer você também pode ver quais tópicos foram carregados dentro do processo (Yoy tem que carregar os Símbolos para ver seus nomes verdadeiros, basta ir ao menu Opções, Configurar símbolos), se você vir algum tópico estranho você poderá ver seus tópicos e ver qual segmento provavelmente está causando o travamento.

E, para terminar, se isso acontecer rapidamente para você com o Process Explorer, você pode clicar com o botão direito em um processo e selecionar suspender. Isso irá pausar a execução até que você a retome manualmente, e você terá tempo para analisar as coisas.

    
por 12.10.2011 / 01:37
-1

Recentemente, tive o mesmo problema, mas não consegui separar nenhum serviço que causasse esse comportamento. Além disso, um serviço com defeito causaria o uso da memória no svchost.exe, não no services.exe. Eu finalmente descobri que acessar um grande número de arquivos em uma pasta criptografada com o EFS acionava o alto uso da memória (por exemplo, fazer um grande checkout em um repositório GIT de 10 GB com arquivos pequenos em uma pasta criptografada do EFS). Descriptografar a pasta parece ter resolvido o problema para mim. Eu acho que preciso mudar para o Bitlocker ou algo similar ...

    
por 24.10.2015 / 01:34