SQL Serverアセンブリの最適化エラーとメモリ不足を修正するにはどうすればよいですか?


9

mscorsvwSQL Server 2012 Service Pack 1をインストールしてから、.NETランタイム最適化サービス()がワークステーションのすべてのメモリを消費し続けます。

使用可能なすべてのメモリを使い果たす前に、約1.6 GBのメモリを消費します。

.NETランタイム最適化サービスは、ワークステーションで使用可能なすべてのメモリを消費します。

プロセスを強制終了することはできますが、コンピュータを再起動するか、十分に待つと再び発生します。

Techdowsは、.NETネイティブイメージジェネレーター(ngen)を使用して問題を解決することを推奨しています。

コマンドプロンプトを実行して、次のようなコマンドを実行しました。

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

のメモリ消費量はmscorsvw約20〜30 MB に低下し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ランタイムを再インストールしてみましたか?
Max Vernon

@MaxVernonまだです。しばらく時間がかかる場合があります。他の解決策がない場合は、来週試してみることにします。
Iain Samuel McLean Elder

どうやら、別の答えを得る限り。再インストールしてみましたか?
Max Vernon

回答:


9

この問題はConnectで説明されており(SQL Server 2012 SP1のインストール後もmsiexec.exeプロセスが実行され続けるを参照)、修正プログラムはKB2793634で入手できます。ホットフィックスをすぐにインストールできない場合のConnectこのブログの回避策に関する解説があります。

2つのスクリプトをセットアップすることにしました。最初のスクリプトは毎日午前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

2番目のスクリプトは毎日午前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プロセスは管理されています。


私はあなたのスクリプトをテストしていません。私のワークステーションでは、修正プログラムをすぐにインストールすることができ、問題は解決しました!参照いただきありがとうございます。
Iain Samuel McLean Elder
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.