知識マップ: Process Explorer / Handle / VMMap実践 ── ハング・リーク・「ファイルが使用中」を今この瞬間の状態から追う

記事「Process Explorer / Handle / VMMap実践 ── ハング・リーク・「ファイルが使用中」を今この瞬間の状態から追う」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

この記事は、装置連携アプリの「だんだん重くなる」「ファイルが消せない」「ハングした」という三大症状を、Process Explorer・handle.exe・VMMapという状態観察系のSysinternalsツールで切り分ける方法を扱う。ファイル使用中はProcess ExplorerのFind Handle or DLLやhandle.exeで掴んでいるプロセスを特定し、ハンドルリークはHandle Countカラムとhandle -sの定点観測で確認でき、GDI/USERオブジェクトの上限接近も同じ手段で監視できる。ハングはThreadsタブのスレッドスタックで調べるが、読むにはdbghelp.dllとシンボルパスからなるシンボル設定が前提になる。Private Bytesの増加はVMMapでHeap・Managed Heap・Private Dataなどに内訳を割ってから専用ツールに進み、プロセス単位で原因が見えないときはRAMMapでOS全体のメモリ使用状況を見る。

Process Explorer・handle.exe・VMMapによる長期稼働アプリ調査の知識マップProcess Explorer・handle.exe・VMMapがファイル使用中・ハンドルリーク・ハング・メモリ増加といった症状をどう切り分けるか、シンボル設定や関連ツールとの関係を示す図前提とする前提とする前提とするで確認できるで確認できるで確認できるで構成できる利用するで確認できるで確認できるより先に行うべき推奨される対応推奨される対応推奨される対応推奨される対応で確認できる利用する利用する利用する利用するProcess Explorerhandle.exeVMMap管理者権限ハンドルリークGDI/USERオブジェクトの上限シンボルサーバーWinDbgファイルマッピング(メモリマップトファイル)Private Bytesの増加RAMMap使用中ファイルのロックアプリケーションのハング(応答なし)ハンドルトレーシング(handle tracing)Sysinternals Live

概念間の関係(全20件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

Process Explorer
プロセスに読み込まれているDLLだけでなく、ハンドル・スレッドスタック・GDI/USERオブジェクト数なども確認できるSysinternalsのプロセス監視ツール。管理者として実行すると他ユーザーやサービスのプロセスも参照できる。
handle.exe
開いているハンドルの一覧・検索を行う、管理者権限が必要なSysinternalsのコマンドラインツールである。
VMMap
プロセスの仮想・物理メモリを、コミット済み仮想メモリの種類別内訳として分析できるSysinternalsのツールである。
ハンドルリーク
参照カウントやハンドルカウントの数え違いなどにより、不要になったハンドル(ファイル・イベント・スレッド・GDIオブジェクト・アクセストークンなどカーネルオブジェクトへの参照)が解放されずに積み上がっていく状態。
GDI/USERオブジェクトの上限
GDIオブジェクト・USERオブジェクトに存在する、プロセスごとの既定上限(既定1万個)とセッション全体の理論上限65,536個という制約である。
シンボルサーバー
PDBなどのシンボルファイルを、ファイル名ではなくバイナリとの一致情報に基づいて整理し、デバッガーが必要なときに取得できるようにする仕組み。
ファイルマッピング(メモリマップトファイル)
ファイルの内容をプロセスやシステムのアドレス空間にマップする仕組み。ディスク上のファイルに裏打ちされる形と、CreateFileMappingにINVALID_HANDLE_VALUEを渡してページファイルに裏打ちされる形(名前付き共有メモリ)がある。Windowsのキャッシュマネージャー自身の実装基盤でもある。
Private Bytesの増加
プロセスのPrivate Bytesが操作の繰り返しに応じて増え続け、二度と減らない状態である。
WinDbg
クラッシュダンプやハングしたプロセスの状態をカーネル/ユーザーモードで解析するためのMicrosoft製デバッガー。SOS拡張によるマネージドヒープ解析や、Application Verifierの検出結果の解析にも使われる。
RAMMap
OS全体の物理メモリ使用状況を、Use Counts・Processes・File Summaryなどのタブで分析できるSysinternalsのツールである。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。