# 性能測定道 事始め編
Navigation: [[index]] | [[性能測定]]
## 概要
早水悠登(東京大学 喜連川研究室、発表当時博士課程3年目)による、日本PostgreSQLユーザ会(JPUG)第27回しくみ+アプリケーション勉強会(2013年10月5日)での講演資料。全49スライド、2回シリーズの第一回「事始め編」にあたり、性能測定を「モデル化」「計測」「シミュレーション」という3つの基本形に分解し、それぞれの意味と相互関係、HDD・待ち行列理論・I/O REPLAYといった具体例を通じて計算機性能測定の心構えと基本形を解説する。次回「実践編」で具体的な測定手法・実践を扱う予定であることが末尾で予告されている(p.16)。
> [!note] 取得経路について
> SlideShare の該当ページはボット対策(Client Challenge)により PDF 原本の直接取得ができなかった。そのため CDN 上の個別スライド画像(image.slidesharecdn.com、638px幅 JPG、全49枚)を取得し、PDF原本の代わりに全ページ画像として `.raw/slides/seinou-sokuteidou-jpug2013/pages/` に保存した。PDF原本(`.raw/slides/<slug>/<slug>.pdf`)は存在しない。
## 主要メッセージ
- 性能測定は機械的に行える作業ではなく「技芸(art)」であり、Raj Jain の "The Art of Computer Systems Performance Analysis" を引用してこの立場を示す(p.12)。
- 性能測定は「モデル化」「計測」「シミュレーション」の3つの基本形からなり、2つ以上を使いこなし相互に検証(validate)し合うことが肝心である(p.20, p.45)。
- 計測はモデル化の「しもべ」であり、モデルなき計測は意味を成さない。目的から測定手法を導出する順序(ワークロード→メトリック→メトリックのモデル化→測定環境→測定手段→実施→モデルとの照合)が推奨される(p.32, p.39)。
- データベースエンジニアにとって、データベースというブラックボックスの中身(パーサ・オプティマイザ・ロック機構・バッファ管理・ストレージ等)を理解し正しく性能測定できることが技術力量に直結する(p.47-48)。
## 視覚的に重要な図表
**p.9 新たなストレージデバイスとアーキテクチャの変遷**
![[_attachments/seinou-sokuteidou-jpug2013/page-009.jpg]]
HDDからFlash SSDへ、さらにRacetrack・PCRAM・FeRAM・ReRAM・STT-RAM等の新デバイスへとストレージの"常識"が変遷していることを示す(計算機の"常識"の大転換の一例)。
**p.21 HDDの1ブロックI/O遅延モデル化**
![[_attachments/seinou-sokuteidou-jpug2013/page-021.jpg]]
回転数R・シーク時間tsから平均回転遅延Δt=60/Rを導出し、1ブロックI/Oの遅延を [ts, ts+Δt] [byte/sec] としてモデル化する。ディスクの動作原理(プラッタの一定速度回転、磁気ヘッドのシリンダ移動)に基づく数式化の実例。
**p.23 SEQ. READ性能の実測とモデルの一致**
![[_attachments/seinou-sokuteidou-jpug2013/page-023.jpg]]
シーケンシャルリードのスループット実測グラフ。内側のシリンダほど低スループットになるという、シリンダ半径に基づくモデルの予測通りの傾向が実測で確認されている。
**p.28 待ち行列によるM/M/1モデル**
![[_attachments/seinou-sokuteidou-jpug2013/page-028.jpg]]
到着率λ・サービス率μの待ち行列モデル(利用率ρ=λ/μ、系内に客がいない確率P0=1-ρ、サービス待ち時間Wq、応答時間W)の理論式。CPU(客=CPU命令)、ストレージ(客=I/Oリクエスト)、データベース(客=SQLクエリ)、ネットワークルータ(客=パケット)等、幅広い計算機システムのモデル化の基礎になる。
**p.44 I/O REPLAYのアーキテクチャ**
![[_attachments/seinou-sokuteidou-jpug2013/page-044.jpg]]
blktraceで採取したI/Oトレース(TPC-Cベンチマーク、SF=100)をtrace parserでキューに投入し、複数のio replayerスレッドがseek/read/writeとしてストレージに再生する構成。I/Oパターンを再生してI/Oバウンドな処理をシミュレーションする手法。
**p.45 デバイス別I/O REPLAYの可視化**
![[_attachments/seinou-sokuteidou-jpug2013/page-045.jpg]]
同一のI/Oトレースを HDD・SSD1・SSD2 に再生した際の、経過時間に対するI/O発行位置の散布図。HDDは局所化されたアクセスパターンが視覚的に明瞭である一方、SSD2ではI/O完了がほぼ全域に緑(read)で埋まり、デバイス特性によってI/O完了パターンが大きく異なることを示す。
## 口頭説明・補足
- **8ソケットNUMAサーバのメモリレイテンシ実測**(スライドには数値の詳細はなく、口頭説明のみ): Nehalem世代8コアプロセッサ・8ソケット構成のサーバで、CPUコアからのメモリアクセスをL1(4サイクル)→L2(10サイクル)→L3共有キャッシュ(60サイクル)→ローカルDRAM→1ホップ先DRAM(約420サイクル、10倍近い悪化)→QPI(プロセッサ間インターコネクト)を跨ぐとさらに+100サイクル、という階層構造で実測した例を紹介。「このマシンを使いこなすには、こうした遅延構造を知らなければならない」という導入として語られた。
- **省電力ストレージ・省電力プロセッサの研究事例**(講演資料の続き、本ページが参照するスライド範囲外の追加スライドで語られたと見られる内容。口頭説明のみで裏取りできる画像なし): ハードディスクのActive/Idle/Standby状態遷移と稼働率(BG率)から消費電力をモデル化し、実測値がモデル式の直線にきれいに重なる例を紹介。データベースのクエリプランをストレージコントローラに伝えてディスクアクセス順序を並べ替え、アイドル区間を作り出して最大50%程度の消費電力削減が見込めるとのシミュレーション結果を報告。プロセッサ側では動作周波数(DVFS)と応答時間・スループット・消費電力の関係をモデル化し(講演内で引用されたARCS 2011論文と対応)、スループット目標型とレスポンスタイム目標型の2種類の周波数制御ポリシーで消費電力を削減できることを示した。消費電力測定では室温変動やファンの影響で測定値が終日揺らぐため、深夜0時〜朝7時の時間帯を選んで測定したという実践上の工夫も語られた。
- **性能測定は「モデル化が全てを決める」という結論**: モデルが正しければ測定対象を完全に理解したことになり、計測はそのモデルの予測を確認するに過ぎないと述べる(スライドp.32-33の主張を口頭でより強く言い換えたもの)。
## Q&A
- **Q. 測定値とモデルのズレは何%程度が一般的か。** A. 対象に大きく依存する。CPU等の半導体系は測定値がモデルにかなり正確に一致することが多いが、ディスクは回転タイミング等の影響で数%ずれることがある。ロジックが複雑になるほど結果が読みにくくなる傾向がある。
- **Q. TPC-Cのようにバッファヒット率を容量との関係でモデル化できるワークロードはよいが、過去のアクセス履歴に依存する(ローカリティのばらつきが大きい)実ワークロードはどうモデル化すべきか。** A. 講演者自身も悩んでいる問題であり、簡単な数式で一発にモデル化できるものではないと認める。モデル化する側面を絞り込み、重要な部分から段階的にモデル化していくアプローチを取らざるを得ないと回答。
- **Q. 喜連川研究室では性能測定の技法をどのように学ぶのか(独学か、指導があるのか)。** A. 基本は「やれ」という文化だが、新しく研究室に入った学生には先輩から「まずHDD性能を測ってモデルを作ってみて」という練習課題が与えられ、密に指導を受けながら試行錯誤して身につけていくとのこと。早水氏自身は測定にある程度慣れた段階で"The Art of Computer Systems Performance Analysis"に出会い、体系的に学ぶタイミングとしてはもっと早く読むべきだったと述べている。MITではこの本の1章分を1学期かけて実プロジェクトで実践する科目があるとも紹介。
- **Q. 測定のために埋め込んだプローブ自体が測定対象の挙動(結果)を変えてしまう場合、どう対処すべきか。** A. 一般解はなく個別に工夫するしかないと回答。具体例として、メモリレイテンシ計測ではループ制御やブランチ命令によるノイズを避けるため、メモリアクセス命令のみをアセンブラで数千行生成してループコストを最小化した例、パイプライン効果を排除するためポインタチェイン(あるポインタが次のポインタを指すデータ構造をシャッフルして生成)を辿らせてCPUパイプラインを常に詰まらせた状態でレイテンシを測った例を紹介。
## 概念・実体への接続
- [[性能測定]] — 本講演が扱う中心概念。モデル化・計測・シミュレーションの三角形。
- [[早水悠登]] — 講演者。東京大学喜連川研究室、データベースシステム研究。
- [[喜連川優]] — 講演者の指導教員。講演内で引用されたOLTPモデル化論文(ARCS 2011)の共著者。
## 限界・不確実点
- SlideShare のボット対策により PDF 原本を取得できず、CDN上の638px幅JPG(全49枚)を代替の一次資料として用いた。原寸PDFに比べ解像度が低いため、細かい図表内の数値が一部読み取りにくい可能性がある。
- p.13の書影(Raj Jain著書)は英語原文の引用のみで、日本語訳部分の対応関係は講演者自身の要約と考えられる。
- 「口頭説明・補足」節の8ソケットNUMAサーバのメモリレイテンシ実測、省電力ストレージ/プロセッサの研究事例は、Whisper文字起こし(自動音声認識)のみを根拠としており、対応するスライド画像で裏取りできていない。特に省電力研究の事例は、本ページが参照する49ページのスライド範囲を超えた追加スライド(SlideShareに公開されていない、または講演当日のみ提示された可能性がある)で語られたと見られ、数値の正確性は口頭説明の水準にとどまる。
- Whisper文字起こしは自動音声認識のため、固有名詞や数値の誤認識が含まれる可能性がある(例: 講演者名が「早水誘導」と誤変換される等)。固有名詞・数値は本文中でスライド画像(高信頼度)と照合できる範囲に限定して記載した。