知識マップ: 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全体のメモリ使用状況を見る。
flowchart LR
accTitle: Process Explorer・handle.exe・VMMapによる長期稼働アプリ調査の知識マップ
accDescr: Process Explorer・handle.exe・VMMapがファイル使用中・ハンドルリーク・ハング・メモリ増加といった症状をどう切り分けるか、シンボル設定や関連ツールとの関係を示す図
process_explorer["Process Explorer"]
handle_exe["handle.exe"]
vmmap["VMMap"]
admin_rights["管理者権限"]
handle_leak["ハンドルリーク"]
gdi_user_object_limit["GDI/USERオブジェクトの上限"]
symbol_server["シンボルサーバー"]
windbg["WinDbg"]
memory_mapped_file["ファイルマッピング(メモリマップトファイル)"]
private_bytes_growth["Private Bytesの増加"]
rammap["RAMMap"]
file_lock_in_use["使用中ファイルのロック"]
application_hang["アプリケーションのハング(応答なし)"]
handle_tracing["ハンドルトレーシング(handle tracing)"]
sysinternals_live["Sysinternals Live"]
process_explorer -.->|"前提とする"| admin_rights
handle_exe -->|"前提とする"| admin_rights
vmmap -.->|"前提とする"| admin_rights
handle_leak -->|"で確認できる"| process_explorer
handle_leak -->|"で確認できる"| handle_exe
gdi_user_object_limit -->|"で確認できる"| process_explorer
process_explorer -->|"で構成できる"| symbol_server
symbol_server -->|"利用する"| windbg
memory_mapped_file -->|"で確認できる"| vmmap
private_bytes_growth -->|"で確認できる"| vmmap
vmmap -.->|"より先に行うべき"| rammap
process_explorer -->|"推奨される対応"| file_lock_in_use
handle_exe -->|"推奨される対応"| file_lock_in_use
process_explorer -->|"推奨される対応"| application_hang
windbg -.->|"推奨される対応"| application_hang
handle_leak -->|"で確認できる"| handle_tracing
process_explorer -.->|"利用する"| sysinternals_live
vmmap -.->|"利用する"| sysinternals_live
handle_exe -.->|"利用する"| sysinternals_live
rammap -.->|"利用する"| sysinternals_live
概念間の関係(全20件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- Process Explorerは管理者権限を前提とします。
- handle.exeは管理者権限を前提とします。
- VMMapは管理者権限を前提とします。
- ハンドルリークはProcess Explorerで確認できます。
- ハンドルリークはhandle.exeで確認できます。
- GDI/USERオブジェクトの上限はProcess Explorerで確認できます。
- Process Explorerはシンボルサーバーで構成できます。
- シンボルサーバーはWinDbgを利用します。
- ファイルマッピング(メモリマップトファイル)はVMMapで確認できます。
- Private Bytesの増加はVMMapで確認できます。
- VMMapはRAMMapより先に行うべきです。
- Process Explorerは使用中ファイルのロックに対する本記事の推奨です。
- handle.exeは使用中ファイルのロックに対する本記事の推奨です。
- Process Explorerはアプリケーションのハング(応答なし)に対する本記事の推奨です。
- WinDbgはアプリケーションのハング(応答なし)に対する本記事の推奨です。
- ハンドルリークはハンドルトレーシング(handle tracing)で確認できます。
- Process ExplorerはSysinternals Liveを利用します。
- VMMapはSysinternals Liveを利用します。
- handle.exeはSysinternals Liveを利用します。
- RAMMapはSysinternals Liveを利用します。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。