Windowsサーバーを運用していると、突然のブルースクリーンに見舞われることがあります。
ブルースクリーンになると、メモリダンプという原因のヒントになるエラーになったメモリ状態をまるまる出力をしてくれますが、インフラSEにはWindowsの中の何が原因なのか追及が難しくお手上げになってしまいます。
しかし、意外と簡単にメモリダンプを解析して、切り分けや原因のヒントをつかむことが出来ます。
レジュメ
環境・前提条件
- Windows Server 2016
- メモリダンプはカーネルメモリダンプ
で、停止コード:BAD POOL HEADERというブルースクリーンが発生してOSがハングして停止してしまいました。
サーバーで出力されたメモリダンプ「C:\Windows\memory.dmp」をクライアントのWindows10上で解析してみました。
結論、マイクロソフト純正フリーソフトWinDbgでメモリダンプから原因の切り分けが出来る
クラッシュしたWindows Server OSのメモリダンプを解析し、原因の切り分けが出来ると、インフラSEとして一皮むけたプロになった気になれます^^
実際に、メモリダンプの解析をWinDbgを使ってやってみましょう。
WinDbgのインストール
メモリダンプを解析するフリーソフト「Windows 10 SDK」を Windows10にインストールしましょう。
「WinDbg」(=Debugging Tools for Windows)は、「Windows 10 SDK」のコンポーネントの一つとしてインストールできます。
参考:Debugging Tools for Windows のダウンロード - WinDbg - Windows drivers | Microsoft Docs
メモリダンプを解析するシンボルの設定
WinDbgをインストールしたら、メモリダンプを解析するためのシンボルファイルを設定しましょう。
シンボルファイルは、メモリダンプを解析するために必要なものです。
参考:メモリダンプに !analyze -v するまで・後編 ~ ダンプを開く~ – Japan WDK Support Blog
「File」メニューから「Symbol File Path」をクリックし、上記のように記載し「OK」ボタンを押します。
SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
そうしたら、いよいよメモリダンプ解析です。
いざ、メモリダンプの解析!クラッシュダンプの中身を覗く
「File」メニューから「Open Crash Dump」をクリックし、Windowsサーバーから持ってきたメモリダンプファイルを開きます。
青文字リンクの「!analyze -v」をクリックし解析スタート
メモリダンプはファイルサイズも大きいですし解析には少し時間がかかります。
「!analyze -v」をクリックして、より詳細を見ていきます。
青文字のリンクをクリックしていくと、今回のメモリダンプの原因について切り分けが出来ます。
今回「BAD POOL HEADER」のブルースクリーンの原因になったのは、mfehidk.sysということがわかりました(マカフィー)。
ブルースクリーンと言う不明確なストップエラーでも、ここまでわかれば次のアクションプランが取れますね!