# レイテンシヒートマップ
## 定義
レイテンシヒートマップは、x軸に時間の経過、y軸にI/Oレイテンシ、z軸(色の濃淡)に同じ時間・レイテンシ範囲に分類されるI/Oの数を取る可視化手法である。数千イベント規模までは散布図(x軸完了時刻・y軸レイテンシ)が有効だが、それを超える規模のイベント(数百万件)ではプロットが重なり合って読みにくくなるため、ヒートマップへのスケーリングが必要になる。Brendan Greggが2008年、Sun MicrosystemsのZFSストレージアプライアンスの分析(Analytics機能)のために考案し、taztoolを起源とするオフセットヒートマップからヒントを得た。同種の可視化に、ディスクオフセット(ブロックアドレス)をy軸に取るオフセットヒートマップ(1995年にRichard McDougallがtaztoolで開始、DTraceTazToolやLinuxのseekwatcherに継承)や、ディスクごとの使用率をy軸に取り外れ値やSloth Diskのようなホットディスクを見つける使用率ヒートマップがある。(Source: [[@2023__OReillyJapan__詳解 システム・パフォーマンス 第2版 - Chapter 9 ディスク]] §9.7.2〜§9.7.5)
複数ディスクへのシーケンシャル読み出しでバスとコントローラの限界を探る実験ワークロードを可視化した例では、平均だけを見ていたら見落としていたはずの「翼竜のような形」の分布が現れ、「くちばし」部分が終わるディスク数(8個)が接続SASポート数(2個のx4ポート)と一致し、「頭」部分の開始点(9個目のディスク)がポート競合の始まりと対応するなど、グラフの細部が技術的な原因と対応づけられることが示された。(Source: [[@2023__OReillyJapan__詳解 システム・パフォーマンス 第2版 - Chapter 9 ディスク]] §9.7.3)
## 横断的知見
(このセクションは複数ソースの突き合わせで得られる知見を蓄積する。現時点では本概念に触れたソースが1件のため、蓄積を今後の ingest に委ねる。)
## 未解決の問い
- レイテンシヒートマップは数百万イベント規模にスケールするとされるが、リアルタイム監視ダッシュボード(Grafana等)に組み込む際のレンダリングコスト・データ集約粒度のトレードオフは本章では扱われていない。
- 「翼竜」のようなヒートマップ形状の解釈(SASポート競合の特定)は事後的なパターン認識に依存しているが、この種の形状変化を自動検知・分類する手法は本章の範囲外であり他ソースでの補完が必要。
## 関連
- [[@2023__OReillyJapan__詳解 システム・パフォーマンス 第2版 - Chapter 9 ディスク]] — レイテンシヒートマップ・オフセットヒートマップ・使用率ヒートマップの原典解説(§9.7.2〜§9.7.5)。
- [[詳解 システム・パフォーマンス 第2版]] — 書籍本体。
- [[Brendan Gregg]] — 考案者。2008年のZFSストレージアプライアンス分析が起点。
- [[レイテンシ分析]] — 同じくレイテンシ調査に関わる関連メソドロジ。
## 出典
- [[@2023__OReillyJapan__詳解 システム・パフォーマンス 第2版 - Chapter 9 ディスク]] §9.7.2〜§9.7.5