Usługa optymalizacji środowiska uruchomieniowego .NET ( mscorsvw
) zużywa całą pamięć mojej stacji roboczej od czasu zainstalowania dodatku Service Pack 1 dla programu SQL Server 2012.
Zużywa około 1,6 GB pamięci przed wyczerpaniem całej dostępnej pamięci:
Mogę zabić proces, ale zdarza się to ponownie, gdy ponownie uruchamiam komputer lub czekam wystarczająco długo.
Techdows sugeruje użycie .NET Native Image Generator ( ngen
) do rozwiązania problemu.
Wysunąłem wiersz polecenia i uruchomiłem następujące polecenia:
cd C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319.1
ngen executeQueuedItems
Zużycie pamięci mscorsvw
spadło do około 20-30 MB i ngen
zużyło całą pozostałą pamięć.
ngen
generowałem tylko komunikaty o błędach, dopóki nie zabiłem procesu. Pierwsze kilka wierszy wyniku wyglądało tak:
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)
Wszystkie komunikaty mówią, że system nie mógł znaleźć zestawu lub że definicja manifestu nie pasuje do odwołania.
Aby obejść ten problem, wyłączyłem Usługi Windows clr_optimization_v4.0.30319_32
i clr_optimization_v4.0.30319_64
.
To ukrywa problem, zamiast go rozwiązać, i powstrzymuje optymalizację wszystkich zestawów .NET.
Co jeszcze mogę spróbować rozwiązać ten problem?
źródło
Odpowiedzi:
Ten problem jest opisany w programie Connect (patrz Procesy msiexec.exe nadal działają po instalacji programu SQL Server 2012 z dodatkiem SP1 ), a poprawka jest dostępna pod adresem KB2793634 . Istnieje komentarz dotyczący obejścia problemu w Connect i tym blogu, jeśli nie możesz natychmiast zainstalować poprawki.
Zdecydowałem się skonfigurować 2 skrypty. Pierwszy skrypt jest uruchamiany codziennie o 1 w nocy i ustawiony na zakończenie po 1 godzinie wykonania
Drugi skrypt jest uruchamiany codziennie o 3 nad ranem (i przy każdym ponownym uruchomieniu komputera):
W ten sposób nadal otrzymuję zadania optymalizacji kompilacji (uruchamiane tylko poza godzinami szczytu), ale proces
mscorsvw
/msiexec
jest oswojony.źródło