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.