Wie behebe ich Fehler bei der Optimierung der SQL Server-Assembly und Speicherauslastung?

9

Der .NET Runtime Optimization Service ( mscorsvw) belegt seit der Installation von SQL Server 2012 Service Pack 1 weiterhin den gesamten Arbeitsspeicher meiner Workstation.

Es verbraucht ungefähr 1,6 GB Speicher, bevor der gesamte verfügbare Speicher erschöpft ist:

Der .NET Runtime Optimization Service belegt den gesamten verfügbaren Speicher auf meiner Workstation.

Ich kann den Prozess abbrechen, aber es passiert erneut, wenn ich meinen Computer neu starte oder lange genug warte.

Techdows schlägt vor ngen, das Problem mit dem .NET Native Image Generator ( ) zu lösen.

Ich habe eine Eingabeaufforderung geöffnet und Befehle wie folgt ausgeführt:

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

Der Speicherverbrauch von mscorsvwsank auf etwa 20 bis 30 MB und ngenverbrauchte den gesamten verbleibenden Speicher.

ngenhat nur Fehlermeldungen generiert, bis ich den Prozess abgebrochen habe. Die ersten Ausgabezeilen sahen folgendermaßen aus:

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)

In allen Meldungen wird entweder angegeben, dass das System keine Assembly finden konnte oder dass eine Manifestdefinition nicht mit einer Referenz übereinstimmt.

Um dieses Problem zu umgehen, habe ich die Windows-Dienste clr_optimization_v4.0.30319_32und deaktiviert clr_optimization_v4.0.30319_64.

Dies verbirgt das Problem, anstatt es zu lösen, und verhindert, dass alle .NET-Assemblys optimiert werden.

Was kann ich noch versuchen, um dieses Problem zu lösen?

Iain Samuel McLean Elder
quelle
Haben Sie versucht, die .Net-Laufzeit neu zu installieren?
Max Vernon
@ MaxVernon Noch nicht. Das könnte eine Weile dauern. Ich werde das nächste Woche versuchen, wenn sich keine andere Lösung bietet.
Iain Samuel McLean Elder
Anscheinend nicht, solange ich eine andere Antwort bekomme. Haben Sie eine Neuinstallation versucht?
Max Vernon

Antworten:

9

Dieses Problem wird in Connect beschrieben (siehe msiexec.exe-Prozesse werden nach der Installation von SQL Server 2012 SP1 weiterhin ausgeführt ). Ein Hotfix ist unter KB2793634 verfügbar . Es gibt Kommentare zu Problemumgehungen in Connect und in diesem Blog, wenn Sie den Hotfix nicht sofort installieren können.

Ich habe mich entschieden, 2 Skripte einzurichten. Das erste Skript wird täglich um 1 Uhr morgens ausgeführt und nach 1 Stunde Ausführung beendet

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

Das zweite Skript wird täglich um 3 Uhr morgens ausgeführt (und bei jedem Neustart des Computers):

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

Auf diese Weise erhalte ich immer noch Kompilierungsoptimierungsjobs (die nur außerhalb der Spitzenzeiten ausgeführt werden), aber der mscorsvw/ msiexec-Prozess ist gezähmt.

Paul
quelle
Ich habe Ihre Skripte nicht getestet. Auf meiner Workstation konnte ich den Hotfix sofort installieren und mein Problem wurde behoben! Danke für den Hinweis.
Iain Samuel McLean Elder