マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

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

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

これを行うには

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

が必要になります。

xxx例外の発生

現象

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

分析手順

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

原因

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

解決策

  • 問題のPGを修正
  • ミドルウェアへのパッチ適用等

OutOfMemory?例外の発生

現象

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

分析手順

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

原因

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

解決策

  • 問題のPGを修正
  • ミドルウェアへのパッチ適用等

CPU使用率大

現象

  1. 性能が出ない
  2. CPU使用率大

分析手順

  1. パフォーマンスカウンタ
    CPUリソースを消費しているプロセスの特定など
  2. ダンプ+ダンプ解析
    本番環境でのみ再現する場合はハングダンプ取得+解析
    (ハングダンプを取得可能なほどCPUを消費する場合に限り)
    ハングしていると思われるスレッドのスタックを確認する。
  3. プログラムのプロファイル
    開発環境で再現できる場合、プロファイラを実行して問題個所を特定

原因

プログラムのバグ・問題によるCPUリソース大量消費(種々の効率の悪い処理に起因する)

解決策

  • 問題のPGを修正
  • ミドルウェアへのパッチ適用等

ディスクIOネック

現象

  1. 性能が出ない
  2. ディスクIOネック

分析手順

  1. パフォーマンスカウンタ
    ディスク・リソースを消費しているプロセスの特定など
  2. プログラムのプロファイル
    開発環境で再現できる場合、プロファイラを実行して問題個所を特定

原因

プログラムの問題によるディスク・リソース大量消費

解決策

  • 問題のPGを修正
  • ミドルウェアへのパッチ適用等

SQLの完了が遅い

現象

  1. 性能が出ない
  2. SQLの完了が遅い

分析手順

  1. パフォーマンスカウンタ
    • ハードウェア・リソース消費の確認
    • SQL Serverの状態の確認
  2. SQLログ
    SQL Serverのイベントの確認
  3. SQLトレース
    DBMSインスタンスの処理しているクエリの確認
  4. 実行プランの確認
    問題のSQLの実行プラインに問題が無いか確認

原因

プログラムの問題によるディスク・リソース大量消費

解決策

  • DBサーバのリソース不足
    • ハードウェア・リソースの追加
  • DB設定の問題によるリソース大量消費
    • バッファ・キャッシュの拡張、
    • DB拡張、ログ記録、制約、トリガ等の一時的無効化
  • DMLの問題によるリソース大量消費
    • 非効率なデータアクセスを修正する。
    • リソースを大量消費しないように修正する。
    • インデックスを使用するように記述(ルールベース
    • インデックスを使用するように統計情報を更新(コストベース
  • DDLの問題によるリソース大量消費
    • インデックスを張る。
    • 非正規化を実施。

Tags: :障害対応, :デバッグ


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-02-08 (木) 10:49:50 (187d)