知識マップ: PerfViewとdotnet-traceで「遅い」を特定する ── .NETパフォーマンス調査の実務入門

記事「PerfViewとdotnet-traceで「遅い」を特定する ── .NETパフォーマンス調査の実務入門」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

業務アプリの「遅い」はCPUを使い切っているCPU boundな遅さと、CPUは暇なのに待たされているブロックによる遅さに分かれ、前者はCPUサンプリング、後者はコンテキストスイッチを記録するThreadTime収集でなければ原因が見えない。管理者権限が不要でクロスプラットフォームなdotnet-trace(EventPipe)がまず試す対象で、マシン全体・ネイティブコード・ブロック時間まで見たい場合はETWベースのPerfViewが必要になる。収集した.nettraceファイルはPerfView・Visual Studio・speedscopeで開け、PerfViewのスタックビューアーはexclusive(自分自身)とinclusive(自分+呼び出し先)の区別を起点に読む。EventSourceで業務処理の区間を独自イベントとして計装しておくと、遅かった1回だけに絞り込んだ分析ができる。

PerfViewとdotnet-traceによる.NET性能調査の知識マップCPU boundな遅さとブロックによる遅さを見分ける入り口として、dotnet-trace(EventPipe)とPerfView(ETW)の役割分担、CPUサンプリングとThreadTime収集の使い分け、inclusive/exclusiveの読み方、EventSourceの独自イベントによる区間の絞り込みを示す図利用する利用する用いるのは非推奨推奨される対応推奨される対応実装を担う利用するで確認できるで確認できる前提とするより先に行うべき利用する利用する利用する利用する前提とする利用する利用する利用する利用するPerfViewdotnet-traceETW(Event Tracing for Windows)EventPipeブロックによる遅さCPU boundな遅さPerfViewのスタックビューアーinclusive/exclusive(Inc/Exc)CPUサンプリングThreadTime収集dotnet-countersEventSourceによる独自イベント計装.nettraceファイルspeedscopePDB(プログラムデータベース)WPR/WPA(Windows Performance Recorder/Analyzer)

概念間の関係(全20件)

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

主要概念の定義

PerfView
MicrosoftがGitHubで無償公開している、ETWベースの.NET性能調査ツール。CPU・GC・ブロック時間をスタックビューアーで分析できる。
dotnet-trace
EventPipeを使い、CPUサンプリングやGC・メモリ割り当てなどのイベントを時系列で収集する.NETのトレース収集ツール。
PerfViewのスタックビューアー
ByName・CallTree・Callers/CalleesなどのタブとStart/End・GroupPatsなどのフィルターを持つ、PerfViewの収集結果を分析する画面。
CPU boundな遅さ
CPUを使い切っていて遅い症状で、CPUサンプリングで原因の関数を特定できる。
ブロックによる遅さ
CPUは暇なのに待たされて遅い症状で、ロック待ち・DB/HTTP応答待ち・ファイルI/Oなどが原因になり、既定のCPUサンプリングでは原因が写らない。
ThreadTime収集
コンテキストスイッチのイベントを追加で記録し、各スレッドのCPU時間とブロック時間を合わせて追えるようにするPerfViewの収集オプション。
dotnet-counters
実行中の.NETプロセスのGCやWorking Setなどの傾向をリアルタイムに監視する診断ツール。
EventSourceによる独自イベント計装
業務処理の開始・終了などをStart/Stopイベントとして発行できる.NETの計装機構で、PerfView(ETW)・dotnet-trace(EventPipe)どちらの収集対象にも含められる。
speedscope
.nettraceなどを変換して開ける、ブラウザーで動く軽量なフレームグラフのビューアー形式。
WPR/WPA(Windows Performance Recorder/Analyzer)
ETWを土台にした、ディスクI/O・電源・起動時間などOS全体の詳細分析に強いWindows標準の性能分析ツール群。

機械可読データ

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