web-dev-qa-db-ja.com

レジストリによって開始されたI / O操作が回復不能に失敗しました

約10秒ごとに、両方のWebサーバー(windows server 2003、iis6を実行)が同じエラーをイベントログに報告します。

> Event Type:   Error Event
> Source:   Application Popup Event
> Category: None Event ID:  333
> Date:     2009-08-18 Time:        22:04:06
> User:     N/A Computer:   DFS273
> Description: An I/O operation
> initiated by the Registry failed
> unrecoverably. The Registry could not
> read in, or write out, or flush, one
> of the files that contain the system's
> image of the Registry.
> 
> For more information, see Help and
> Support Center at
> http://go.Microsoft.com/fwlink/events.asp.
> Data: 0000: 00 00 00 00 01 00 6c 00  
> ......l. 0008: 00 00 00 00 4d 01 00 c0
> ....M..À 0010: 00 00 00 00 4d 01 00 c0
> ....M..À 0018: 00 00 00 00 00 00 00 00
> ........ 0020: 00 00 00 00 00 00 00 00
> ........

これらの種類のエラーの原因となるものに関する情報は見つかりません。 CPUは90-100%とかなりビジーですが、未使用のRAMはほぼ1 GBあります。

2
windyjonas

ディスク/コントローラー/ RAIDハードウェア?マシンを停止し、chkdsk c:/ v/fを実行します(また、使用している他のパーティションでも実行します)。問題が2台のマシンで発生したと言っていましたが、おそらく両方とも不良バッチのディスクを持っています。

または、ディスクは正常ですが、レジストリの破損を引き起こした一時的な不具合が1つあります。 10秒の間隔は、おそらくWindowsが定期的に実行するハートビート機能です(クラッシュが発生すると、イベントログに「システムのシャットダウン時に...予期しないエラーが発生しました」というメッセージが表示されることがあります)。

1
dmoisan

以下は私が先週遭遇した実際のケースです。

症状は同じです。いくつかの「レジストリによって開始されたI/O操作が回復不能に失敗しました」というイベントがシステムイベントに記録されました。また、1つのアプリケーションがアプリケーションイベントで「プロセスの作成エラー」を報告しました。 CreateProcess()関数はめったに失敗しないので、このイベントの出現は、システムリソースがいっぱいであることを示しています。

実際、「以前のシャットダウンは予期しないものでした」というイベントが見つかりました。これは、シャットダウン時にWindowsがタイムスタンプのクリーンアップに実質的に失敗したことを意味します。( http://support.Microsoft.com/kb/95032 )システムはレジストリの値を更新する機会すらありませんでした!これはどうして起こりますか? Windowsが非ページメモリまたはページプールメモリをリークしていることを推測するのは難しくありません。

そこで、2つのカウンターを追加しました。非ページプールバイトとページプールバイト、およびハンドルリークの場合のカーネルオブジェクトカウンターです。当然のことながら、次の図に示すように、システムは2日後にクラッシュしました。ページプールサイズが2009-10-24 09:28から2009-10-26 23:26まで増加し続け、システムが約360MBのページプールサイズでクラッシュした場合。私はProcexpを使用して、実際に360MBであるページプールの制限を取得します。

最後のステップは、リークしているドライバーを見つけることです。Poolmon( http://technet.Microsoft.com/en-us/library/cc737099(WS.10).aspx )を使用して、詳細なページプールおよび非ページプール情報を監視します。

alt text

alt text

4
yanglei

まったく同じ問題がありました。イベントビューアの同じEvenetIDエラー(333)。数日おきにサーバー(Windows Server 2003 x64)が応答しなくなりました。ローカルまたはリモートでマシンにログオンすることができなかったため、毎回再起動する必要がありました。 RAID /ディスク/ファイバーチャネル-ファームウェアとドライバーをアップグレードし、オンラインバックアップ用のアプリ(IDriveまたはIStoreなど)をアンインストールしましたが、問題は解決しました。ファームウェアのアップグレードで問題が解決したのか、または問題のあるアプリが問題を引き起こしていたのか、私にはまだわかりません。

0
PsYx

列 "handles count"をプロセスビューに追加しました。 1つのプロセスがハンドル(SNMP)を永続的に作成し続けます。パフォーマンスWizardが示すように、前回のサーバーがクラッシュする前に、SNMPには200万を超えるハンドルがありました。

これは間違いなくハンドルリークです。イベントログのエントリは、システムリソースの枯渇の結果にすぎません。問題は、どのプロセスがハンドルをリークしているかです。 perfmonを使用してシステム全体のさまざまなリソースカウンターをトレースすることをお勧めします。そのため、システムが再びクラッシュしたときに、根本的な原因を見つけるのに十分なデータが得られます。

次のカウンターが役立つかもしれません:Object、Memory、Process\Snmp

ところで:あなたの場合、犯人は明らかにsnmpプロセスです。

0
yanglei