ソリューションは、Hyper-V 環境でホストされている Windows Server 2012 R2 Standard VM 上の IIS でホストされている E/F を使用する ASP.NET MVC アプリケーションです。同じ VM が SQL Server 2012 を実行しています。
ホスティング環境は 30 の他のソリューションをホストしており、十分な空きディスク容量があり、ホスティング環境または VM に既知のディスクの問題はありません (VM で chkdsk と sfc が実行され、問題は報告されていません)。
問題は、ソリューション/サーバーが 5 ~ 10 分間の短い時間停止し、ESENT からのイベント ID 508/533 と「C:\Windows\system32\LogFiles\Sum」への書き込みに関するメッセージが表示されるたびに停止することです。
同様のメッセージが sqlsvr で見られましたが、C:\Windows\system32\LogFiles\Sum に対するすべての権限を全員に与えることで解決されました。
問題が解決しない場合は、VM 全体に影響し、リモート デスクトップ経由で接続できなくなることもあります。
問題が発生したときに多数の開いている SQL Server 接続が確認されており、特定の Web API メソッドのキャッシュを導入する前に、実際に SQL Server 接続プールを空にすることができました。念のため、接続プールを 100 から 200 接続に変更しましたが、キャッシュを導入して以来、この特定の問題は発生していません。
すべての DbContext インスタンスは、「使用」、ApiController.Dispose オーバーライド、または Controller.Dispose オーバーライドによって破棄され、1 つの SqlConnection のみが (ログ システム用に) 使用されます。
問題は解決策の外にあり、SQL Server 接続の数が多いのは、SQL Server がディスクに書き込めないという事実に関連していると思われます。
以下は、最近の 3 つの「ブレーク ダウン」に関する Windows イベント ログの抜粋です。問題が発生する前と、サーバーが自動的に復旧した後の Web 要求の数に関する追加情報も含まれています。
助言がありますか?
問題が発生する直前の 10 分間の
Web リクエスト: 1399 サーバーが回復した後の最初の 10 分間の Web リクエスト: 1630
18-03-2015 20:07:20 833 MSSQLSERVER SQL Server で、ファイル [C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\] で完了するのに 15 秒以上かかる I/O 要求が 1 回発生しました。データベース [Xxx] 内の MSSQL\DATA\Xxx.mdf] (5)。OS ファイル ハンドルは 0x0000000000000A7C です。最新の長い I/O のオフセット: 0x000003e104e000
18-03-2015 20:07:40 833 MSSQLSERVER SQL Server で、ファイル [C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\] で完了するのに 15 秒以上かかる I/O 要求が 1 回発生しました。データベース [Xxx] 内の MSSQL\DATA\Xxx_log.ldf] (5)。OS ファイル ハンドルは 0x0000000000000A8C です。最新の長い I/O のオフセット: 0x0000007f203000
18-03-2015 20:08:16 533 ESENT svchost (1740) 4096 (0x00001000) のオフセット 1806336 (0x00000000001b9000) にあるファイル「C:\Windows\system32\LogFiles\Sum\Svc.log」への書き込み要求バイトが 36 秒間完了していません。この問題は、ハードウェアの障害が原因である可能性があります。問題を診断するためのサポートが必要な場合は、ハードウェア ベンダーにお問い合わせください。
18-03-2015 20:17:14 508 ESENT svchost (1740) 4096 (0x00001000) のオフセット 1806336 (0x00000000001b9000) にあるファイル「C:\Windows\system32\LogFiles\Sum\Svc.log」への書き込み要求bytes は成功しましたが、OS による処理に異常に長い時間 (36 秒) かかりました。この問題は、ハードウェアの障害が原因である可能性があります。問題を診断するためのサポートが必要な場合は、ハードウェア ベンダーにお問い合わせください。
問題が発生する直前の 10 分間の
Web リクエスト: 696 サーバーが回復した後の最初の 10 分間の Web リクエスト: 614
19-03-2015 01:17:19 533 ESENT svchost (1740) 4096 (0x00001000) のオフセット 3067904 (0x00000000002ed000) にあるファイル「C:\Windows\system32\LogFiles\Sum\Svc.log」への書き込み要求バイトが 36 秒間完了していません。この問題は、ハードウェアの障害が原因である可能性があります。問題を診断するためのサポートが必要な場合は、ハードウェア ベンダーにお問い合わせください。
19-03-2015 01:33:02 508 ESENT svchost (1740) 4096 (0x00001000) のオフセット 3067904 (0x00000000002ed000) にあるファイル「C:\Windows\system32\LogFiles\Sum\Svc.log」への書き込み要求bytes は成功しましたが、OS によって処理されるまでに異常に長い時間 (983 秒) かかりました。この問題は、ハードウェアの障害が原因である可能性があります。問題を診断するためのサポートが必要な場合は、ハードウェア ベンダーにお問い合わせください。
19-03-2015 01:33:03 833 MSSQLSERVER SQL Server で、ファイル [C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\] で完了するのに 15 秒以上かかる I/O 要求が 5 回発生しました。データベース [Xxx] 内の MSSQL\DATA\Xxx_log.ldf] (5)。OS ファイル ハンドルは 0x0000000000000A8C です。最新の長い I/O のオフセット: 0x000000a389d000
問題が発生する直前の 10 分間の
Web リクエスト: 555 サーバーが回復した後の最初の 10 分間の Web リクエスト: 784
19-03-2015 03:33:51 833 MSSQLSERVER SQL Server で、ファイル [C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\] で完了するのに 15 秒以上かかる I/O 要求が 1 回発生しました。データベース [Xxx] 内の MSSQL\DATA\Xxx_log.ldf] (5)。OS ファイル ハンドルは 0x0000000000000A8C です。最新の長い I/O のオフセット: 0x000000aa95f000
19-03-2015 03:40:48 533 ESENT svchost (1740) 4096 (0x00001000) のオフセット 3846144 (0x00000000003ab000) にあるファイル「C:\Windows\system32\LogFiles\Sum\Svc.log」への書き込み要求バイトが 36 秒間完了していません。この問題は、ハードウェアの障害が原因である可能性があります。問題を診断するためのサポートが必要な場合は、ハードウェア ベンダーにお問い合わせください。
19-03-2015 03:40:48 833 MSSQLSERVER SQL Server で、ファイル [C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\] で完了するのに 15 秒以上かかる I/O 要求が 1 回発生しました。 MSSQL\DATA\MSDBLog.ldf] データベース [msdb] (4)。OS ファイル ハンドルは 0x0000000000000A90 です。最新の長い I/O のオフセット: 0x00000000108000
19-03-2015 03:40:49 508 ESENT svchost (1740) 4096 (0x00001000) のオフセット 3846144 (0x00000000003ab000) にあるファイル「C:\Windows\system32\LogFiles\Sum\Svc.log」への書き込み要求bytes は成功しましたが、OS による処理に異常に長い時間 (36 秒) かかりました。この問題は、ハードウェアの障害が原因である可能性があります。問題を診断するためのサポートが必要な場合は、ハードウェア ベンダーにお問い合わせください。
19-03-2015 03:40:49 17894 MSSQLSERVER ディスパッチャー (0x1a88) ディスパッチャー プール 'XE エンジン メイン ディスパッチャー プール' ワーカー 0x00000000F03B8160 は、ノード 0 で解放されていないようです。概算 CPU 使用: カーネル 0 ミリ秒、ユーザー 0 ミリ秒、間隔: 336140。