Come posso correggere gli errori di ottimizzazione dell'assembly di SQL Server e l'esaurimento della memoria?


9

.NET Runtime Optimization Service ( mscorsvw) continua a consumare tutta la memoria della mia workstation da quando ho installato SQL Server 2012 Service Pack 1.

Consuma circa 1,6 GB di memoria prima di esaurire tutta la memoria disponibile:

Il servizio di ottimizzazione runtime .NET consuma tutta la memoria disponibile sulla mia workstation.

Posso interrompere il processo, ma succede di nuovo quando riavvio il computer o aspetto abbastanza a lungo.

Techdows suggerisce di utilizzare .NET Native Image Generator ( ngen) per risolvere il problema.

Ho espulso un prompt dei comandi ed eseguito comandi in questo modo:

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

Il consumo di memoria è mscorsvwsceso a circa 20-30 MB e ha ngenconsumato tutta la memoria rimanente.

ngengenerato solo messaggi di errore fino a quando non ho interrotto il processo. Le prime linee di output apparivano così:

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)

Tutti i messaggi dicono che il sistema non è riuscito a trovare un assembly o che una definizione manifest non corrisponde a un riferimento.

Per ovviare al problema, ho disabilitato i servizi Windows clr_optimization_v4.0.30319_32e clr_optimization_v4.0.30319_64.

Ciò nasconde il problema anziché risolverlo e impedisce l'ottimizzazione di tutti gli assembly .NET.

Cos'altro posso provare a risolvere questo problema?


Hai provato a reinstallare il runtime .Net?
Max Vernon,

@MaxVernon Non ancora. Potrebbe volerci un po '. Lo proverò la prossima settimana se non si presenta altra soluzione.
Iain Samuel McLean Elder,

Apparentemente, non fino a quando si ottiene un'altra risposta. Hai provato a reinstallare?
Max Vernon,

Risposte:


9

Questo problema è descritto su Connect (vedere i processi msiexec.exe continuano a funzionare dopo l'installazione di SQL Server 2012 SP1 ) e un aggiornamento rapido è disponibile su KB2793634 . Esistono commenti sulle soluzioni alternative su Connect e su questo blog se non è possibile installare immediatamente l'aggiornamento rapido.

Ho scelto di impostare 2 script. Il 1 ° script viene eseguito ogni giorno alle 01:00 e impostato per terminare dopo 1 ora di esecuzione

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

Il secondo script viene eseguito ogni giorno alle 3 del mattino (e ogni volta che il computer si riavvia):

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

In questo modo ottengo ancora lavori di ottimizzazione della compilazione (eseguito solo durante le ore non di punta), ma il processo mscorsvw/ msiexecviene domato.


Non ho testato i tuoi script. Sulla mia stazione di lavoro sono stato in grado di installare immediatamente l'aggiornamento rapido e questo ha risolto il mio problema! Grazie per il riferimento.
Iain Samuel McLean Elder il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.