Как исправить ошибки оптимизации сборки SQL Server и исчерпание памяти?


9

.NET Runtime Optimization Service ( mscorsvw) продолжает потреблять всю память моей рабочей станции с момента установки SQL Server 2012 с пакетом обновления 1 (SP1).

Он потребляет около 1,6 ГБ памяти, прежде чем исчерпать всю доступную память:

.NET Runtime Optimization Service использует всю доступную память на моей рабочей станции.

Я могу убить процесс, но это происходит снова, когда я перезагружаю компьютер или жду достаточно долго.

Techdows предлагает использовать .NET Native Image Generator ( ngen) для решения проблемы.

Я открыл командную строку и запустил такие команды:

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

Потребление памяти mscorsvwупало примерно до 20-30 МБ, и ngenзаняло всю оставшуюся память.

ngenгенерируются только сообщения об ошибках, пока я не убил процесс. Первые несколько строк вывода выглядели так:

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)

Во всех сообщениях говорится, что система не смогла найти сборку или что определение манифеста не соответствует ссылке.

В качестве обходного пути я отключил службы Windows clr_optimization_v4.0.30319_32и clr_optimization_v4.0.30319_64.

Это скрывает проблему, а не решает ее, и препятствует оптимизации всех сборок .NET.

Что еще я могу попытаться решить эту проблему?


Вы пытались переустановить .Net runtime?
Макс Вернон

@MaxVernon Еще нет. Это может занять некоторое время. Я попробую это на следующей неделе, если не будет другого решения.
Иэн Самуэль Маклин, старейшина

Видимо, не так долго, как получить другой ответ. Вы пробовали переустановку?
Макс Вернон

Ответы:


9

Эта проблема описана в Connect (см., Что процессы msiexec.exe продолжают работать после установки SQL Server 2012 с пакетом обновления 1 ), а исправление доступно на KB2793634 . Если вы не можете сразу установить исправление, есть комментарии по обходным решениям Connect и этого блога .

Я решил настроить 2 сценария. 1-й сценарий запускается ежедневно в 1:00 и устанавливается на прекращение после 1 часа выполнения

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

Второй сценарий выполняется ежедневно в 3 часа ночи (и всякий раз, когда компьютер перезагружается):

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

Таким образом, я по-прежнему получаю задания по оптимизации компиляции (запускаются только в непиковые часы), но mscorsvw/ msiexecпроцесс приручен.


Я не проверял ваши сценарии. На моей рабочей станции я смог установить исправление немедленно, и это решило мою проблему! Спасибо за ссылку.
Иэн Самуэль Маклин, старейшина
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.