Open棟梁Project - マイクロソフト系技術情報 Wiki

目次

概要

以下は障害発生までに至る因果関係の事例になります。

「現象」と「原因」はプラットフォームの内部状態を理解しなければ紐付けできません。 逆に言えばプラットフォームの内部動作を理解しておけば、この紐付けも容易になります。

これを行うには

  1. プラットフォームに対する知識
  2. 状態確認・分析方法に関する知識
  3. 分析結果から原因を推測するスキル

が必要になります。

xxx例外の発生

現象

  1. 例外でクラッシュ
  2. xxx例外

分析手順

  1. ログ確認
    WERなどから例外情報を確認する。
  2. ダンプ+ダンプ解析
    • 本番環境でのみ再現する場合はクラッシュダンプ取得+解析
    • 例外情報と、例外を発生させているスレッドのスタックを確認する。
  3. プログラムのプロファイル
    開発環境で再現できる場合、プログラムをデバッグ

原因

プログラムのバグによる未処理例外

解決策

OutOfMemory?例外の発生

現象

  1. 性能が出ない → 例外でクラッシュ
  2. メモリ使用量大 → GC、ページング → オーバヘッド大 → OutOfMemory?例外

分析手順

  1. ログ確認
    WERなどから例外情報を確認する。
  2. パフォーマンスカウンタ
    ページング、メモリリークの確認、プロセスの特定など
  3. ダンプ+ダンプ解析
    • 本番環境でのみ再現する場合はダンプ取得+解析
    • 仮想アドレス空間の確保状況を確認する。
  4. プログラムのプロファイル
    • 開発環境で再現できる場合、プロファイルを実行
    • ヒープの使用状況を確認する。

原因

プログラムのバグによるメモリリーク

解決策


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS