Як виправити помилки оптимізації збірки SQL Server та виснаження пам'яті?


9

Служба оптимізації виконання .NET ( mscorsvw) продовжує витрачати всю пам'ять моєї робочої станції з моменту встановлення пакета оновлень 1 для SQL Server 2012.

Він витрачає близько 1,6 ГБ пам'яті, перш ніж вичерпати всю наявну пам'ять:

Сервіс оптимізації виконання .NET витрачає всю наявну пам'ять на моїй робочій станції.

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

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 час виконання?
Макс Вернон

@MaxVernon Ще не. Це може зайняти деякий час. Я спробую це на наступному тижні, якщо не знайдеться інше рішення.
Ієн Самуель Маклін Старший

Мабуть, не так довго, як отримати ще одну відповідь. Ви спробували перевстановити?
Макс Вернон

Відповіді:


9

Ця проблема описана в Connect (див. Процеси msiexec.exe, які продовжують працювати після встановлення SQL Server 2012 SP1 ), а виправлення доступне на сторінці KB2793634 . Існує коментар до робочих напрямків на Connect та цей блог, якщо ви не можете негайно встановити виправлення.

Я вирішив встановити 2 сценарії. 1-й скрипт працює щодня о 1 годині ночі і встановлюється для закінчення після 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.