Como corrijo erros de otimização de assembly do SQL Server e exaustão de memória?


9

O .NET Runtime Optimization Service ( mscorsvw) continua consumindo toda a memória da minha estação de trabalho desde que instalei o SQL Server 2012 Service Pack 1.

Consome cerca de 1,6 GB de memória antes de esgotar toda a memória disponível:

O .NET Runtime Optimization Service consome toda a memória disponível na minha estação de trabalho.

Eu posso matar o processo, mas isso acontece novamente quando eu reinicio o computador ou espero o tempo suficiente.

Techdows sugere a utilização do .NET nativo Imagem Generator ( ngen) para resolver o problema.

Abri um prompt de comando e executei comandos como este:

cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319.1
ngen executeQueuedItems

O consumo de memória mscorsvwcaiu para cerca de 20 a 30 MB e ngenconsumiu toda a memória restante.

ngengerou apenas mensagens de erro até eu interromper o processo. As primeiras linhas de saída eram assim:

Microsoft (R) CLR Native Image Generator - Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.
Failed to load dependency Microsoft.DataWarehouse of assembly
Microsoft.SqlServer.MaintenancePlanTasks, Version=11.0.0.0, Culture=neutral,
PublicKeyToken=89845dcd8080cc91 because of the following error : The system
cannot find the file specified. (Exception from HRESULT: 0x80070002)
Failed to load dependency Microsoft.VisualStudio.DataTools.Interop of assembly 
Microsoft.DataWarehouse, Version=11.0.0.0, Culture=neutral,
PublicKeyToken=89845dcd8080cc91 because of the following error : The system
cannot find the file specified. (Exception from HRESULT: 0x80070002)
Failed to load dependency Microsoft.Data.ConnectionUI of assembly
Microsoft.DataWarehouse, Version=11.0.0.0, Culture=neutral,
PublicKeyToken=89845dcd8080cc91 because of the following error : The located
assembly's manifest definition does not match the assembly reference.
(Exception from HRESULT: 0x80131040)

Todas as mensagens dizem que o sistema não conseguiu encontrar uma montagem ou que uma definição de manifesto não corresponde a uma referência.

Como solução alternativa, desabilitei os Serviços do Windows clr_optimization_v4.0.30319_32e clr_optimization_v4.0.30319_64.

Isso oculta o problema em vez de resolvê-lo e impede que todos os assemblies .NET sejam otimizados.

O que mais posso tentar resolver esse problema?


Você tentou reinstalar o tempo de execução .Net?
Max Vernon

@MaxVernon Ainda não. Isso pode demorar um pouco. Vou tentar na próxima semana se nenhuma outra solução se apresentar.
Iain Samuel McLean Elder

Aparentemente, não contanto que obtenha outra resposta. Você tentou reinstalar?
Max Vernon

Respostas:


9

Esse problema é descrito no Connect (consulte Processos msiexec.exe continuam em execução após a instalação do SQL Server 2012 SP1 ) e um hotfix está disponível no KB2793634 . Há comentários sobre soluções alternativas no Connect e neste blog se você não conseguir instalar o hotfix imediatamente.

Eu escolhi configurar 2 scripts. O primeiro script é executado diariamente às 01:00 e definido para terminar após 1 hora de execução

c:\windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe executequeueditems
c:\windows\Microsoft.NET\Framework\v2.0.50727\ngen.exe executequeueditems
c:\windows\Microsoft.NET\Framework64\v2.0.50727\ngen.exe executequeueditems 
c:\windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe executequeueditems

O segundo script é executado diariamente às 3h (e sempre que o computador reiniciar):

c:\windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe queue pause
c:\windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe queue pause

Dessa forma, ainda recebo trabalhos de otimização de compilação (executados apenas fora do horário de pico), mas o processo mscorsvw/ msiexecé domado.


Eu não testei seus scripts. Na minha estação de trabalho, consegui instalar o hotfix imediatamente e resolveu o meu problema! Obrigado pela referência.
Iain Samuel McLean Elder
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.