Uso incorreto da CPU pelo mscorsvw.exe (.NET Runtime Optimization Service)

5

Eu tenho um Servidor de Terminal Server 2008 R2 que tem sido meio que ficar sentado nos últimos três meses com um uso muito baixo (talvez 1 usuário por uma hora, uma vez por dia).

De repente, por nenhuma razão que eu possa entender, mscorsvw.exe (.NET Runtime Optimisation Service) começou a consumir 100% de um processador, fazendo com que todos os tipos de alarmes e gatilhos disparassem. É um padrão repetitivo, por isso é bastante previsível saber quando vai acontecer a seguir:

Alguém sabe o que pode causar isso? Eu fiz o óbvio (reiniciei o servidor), mas além disso sou SOL.

A única coisa em que posso pensar que pode ser relevante é que eu aprovo meia dúzia de atualizações do Windows esta manhã via WSUS, mas elas não devem ser instaladas até as 2 da manhã de amanhã (algumas delas relacionadas ao .NET 4 segurança).

Ninguém está logado no servidor (exceto eu), e mesmo se eles estivessem, não temos nenhum aplicativo .NET que seja usado lá.

    
por Mark Henderson 17.06.2011 / 03:17

1 resposta

8

O mscorsvw é um processo que pré-compila os binários do .NET. Suas atualizações podem ter acionado essa atividade. Pelo menos, é o que o link diz que está acontecendo.

Você pode ter mais pistas do que exatamente está acontecendo se você puder executar o utilitário procmon sysinternals. Isso irá dizer-lhe que arquivo (s) mscorsvw está batendo ou focando, e ajudar a determinar se ele está realmente se concentrando em arquivos .net potencial.

A partir desse site, se isso é o que está acontecendo, executando

ngen.exe executequeueditems

deve "limpar a fila" fazendo com que ela execute tudo de uma vez, em vez de esperar que a CPU fique ociosa, como parece quando isso está acontecendo em seu servidor. Uma vez feito com a pré-compilação, deve parar de acontecer.

    
por 17.06.2011 / 03:27