性能測定道早水 悠登 (東大)
Thanks to
合田和生(東大) 山田浩之(東大) 喜連川優(東大, NII)
2013/10/05 日本PostgreSQLユーザ会(JPUG)第27回しくみ+アプリケーション 勉強会
• 氏名:早水 悠登 (はやみず ゆうと)
• a.k.a はやみず (@hayamiz)• 所属:東京大学(略)喜連川研究室
• データベースシステムの研究• 博士課程3年目• 趣味:計算機の性能測定
• 研究室での仕事(のひとつ):計算機の性能測定
$ whoami
データベース研究と性能測定• 大学での研究:”10年後の当たり前” を生み出す仕事
• 誰も使ったことのない新しいマシンで• 誰も考えたことのない新しいデータベースシステムを
• 新しいマシンの性能がわからないと研究できない!• 実装したシステムの性能がわからないと論文が書けない!
なぜ今
性能測定なのか?
計算機の”常識”の大転換• シングルコアからマルチコアへ
• UMAからNUMAへ
• 全てが on die へ
• メモリコントローラ
• PCIeコントローラ
• ...graph by courtesy of Herb Sutter
http://www.gotw.ca/publications/concurrency-ddj.htm
“The free lunch is over”
計算機の”常識”の大転換• 新たなストレージデバイスとアーキテクチャの変遷
images by courtesy of SNIA
?
image by courtesy of Hans Haasehttp://commons.wikimedia.org/wiki/File:Sf-ssd.jpg
image by courtesy of leonlaihttp://www.sxc.hu/photo/308374
Hard disk Flash SSD
RacetrackPCRAMFeRAMReRAM
STT-RAM...
変わり続ける計算機の姿を
正確に捉えつづけることが
エンジニアの力量を決める
目の前にある計算機の姿を
正確に捉えるための技芸が
性能測定である
目の前にある計算機の姿を
正確に捉えるための技芸が
性能測定である
技芸The Art
The Art Of Computer Systems Performance Analysis
Contrary to common belief, performance evaluation is an art. Like a work of art, successful evaluation cannot be produced mechanically. Every evaluation requires an intimate knowledge of the system being modeled and a careful selection of the methodology, workload, and tools.
一般的な認識に反して、性能測定とは技芸である。芸術作品がそうであるように、価値ある性能測定は機械的に行うことはできない。あらゆる性能測定において、モデル化を行うシステムに対する深い知見は欠くことができず、手法・ワークロード・ツールを注意深く選択することが必要である。
技ある所に
道あり
性能測定道事始め編
性能測定道• 其一 事始め編(本日)
• 計算機性能測定の心と基本形• 其弐 実践編(次回)
• 計算機性能測定の手法とその実践
性能測定の心
測定の心は測定の外にあり• 何のために性能測定をするのか?
• 性能測定は戦略目的を達成するための戦術• 目的から性能測定の手法を導出する
性能測定の技
3つの基本形
Modeling
MeasurementSimulation
MODELING
Modeling
MeasurementSimulation
MODELING -モデル化-• 科学的アプローチの原点
• 測定対象の”モデル”を作る• 内部の動作原理を知る
• 性能に影響を与える要素を選び出す• 性能を数式化する
例:HDDのモデル化• ディスクの動作原理 (右図)• プラッタが一定速度で回転
• 磁気ヘッドを移動してシリンダ選択
• Seq. readのスループットモデル
• 回転数 R [rpm]
• シリンダ半径 r [m]
• シリンダ密度 D [byte/m]
8 Heads,4 Platters
Track/Cylinder
Heads
Sector
2πr × D ×R ÷60 [byte/sec]
内側のシリンダにいくほどスループットは小さくなる!
image by courtesy of Wikimedia Commons
SEQ. READ 性能
外側のシリンダ 内側のシリンダ
モデル通り内側ほど低スループット
Graph by courtesy of 山田浩之
例:HDDのモデル化• 1ブロックのI/O遅延モデル
• 回転数 R [rpm]
• 平均回転遅延 Δt = 60/R [sec]
• シーク時間 ts [sec]
8 Heads,4 Platters
Track/Cylinder
Heads
Sector
[ts, ts + Δt] [byte/sec]image by courtesy of Wikimedia Commons
1ブロックのI/O遅延
6ms 回転遅延とほぼ一致
Graph by courtesy of 山田浩之
待ち行列によるモデル化• 待ち行列モデル• サービスを受ける客が平均到着率λでやってくる• サービス窓口は平均時間μで1人のサービスを終える
• 計算機システムの理論的性能モデル化の基礎• CPU : 客=CPU命令、サービス=CPU命令実行• ストレージ: 客=I/Oリクエスト、サービス=I/O実行• データベースシステム:客=SQLクエリ、サービス=クエリ実行• ネットワークルータ:客=パケット、サービス=パケット転送• etc ...
image by courtesy of Wikimedia Commons
待ち行列と性能モデル• 簡単な待ち行列は理論的に性能がわかる
• M/M/1:窓口が1つ、何人でも待てる
λμ
サービス待ち時間
系内待ち時間= 応答時間
系内に客がいない確率
系内に客がn人いる確率
サービス待ち時間
応答時間
OLTPシステムのモデル化
• OLPTシステムをM/M/sにあてはめてモデル化
• CPUの動作周波数と応答時間のモデル予測と実測値
1/!f0
0.6s!f0 0.8s!f0 s!f0
resp
onse
tim
e
arrival rate "
R0 R0 /0.8
R0 /0.6
O
f=f0f=0.8f0f=0.6f0
0
10
20
30
40
50
0 10000 20000 30000 40000 50000
resp
onse
tim
e [m
sec]
throughput [tpmC]
2.66GHz2.13GHz1.60GHz
引用) Yuto HAYAMIZU, Kazuo GODA, Miyuki NAKANO and Masaru KITSUREGAWA. Application-aware Power Saving for Online Transaction Processing using Dynamic Voltage and Frequency Scaling in a Multicore Environment. Proceedings of Architecture of Computing Systems, 24th International Conference (ARCS 2011), pp. 50 - 61 (2011.02).
モデル化の効果• モデルによって実際の計測前に性能が予想できる
• 計測は予想の確認に過ぎない
• 適切なモデル=測定対象の理解そのもの• モデル化が全てを決めるといっても過言ではない
MEASUREMENT
Modeling
MeasurementSimulation
MEASUREMENT -計測-• 計測はモデル化のしもべ
• モデルなき計測は意味を成さない• モデルが計測結果の正しさを裏付ける
• 計測でモデルの正しさを確認する
意味のある計測をするために
• 計測するワークロードを決める
• アプリケーションの特徴は?• 計測するメトリックを決める• 何がわかると目的を達成することができるか?
• 計測するメトリックをモデル化する
• 計測する環境を決める• 計測するメトリックが見える環境になっている?
• 計測する手段を考える• 計測するメトリクスが採れるか?
• 計測を実施する• 計測結果とモデルを照らし合わせる
目的から計測手法を導出する
Ex) IOPS, MB/s, ... of HDD, SSD...
考えるべきことは結構多いNG: ベンチマークツールを実行してみるだけ
例: OLTPシステム構築
• XXXX tpsを達成可能なOLPTシステムを作るためのストレージ選び
目的
ワークロード• アプリケーションの特徴は?• Ex) ストレージに対するランダムI/O発行
• ストレージのランダムアクセスIOPS
メトリック
例: OLTPシステム構築
• メトリックに影響を与える要素は?• Ex) ランダムアクセスIOPS• I/O発行サイズ : 8KB~16KB• I/O並列発行数 : 1 ~ ...• HBAキュー長• ストレージコントローラキュー長• etc ...
メトリックのモデル化
例: OLTPシステム構築
• システムのリソースの流れを注意深く設計する• メトリクス: ストレージのランダムアクセスIOPS• リソース = I/Oリクエスト• ストレージデバイスまでI/Oリクエストが流れているか?
計測環境
例: OLTPシステム構築
• 適切なツールを選ぶ or 作る• システムのどの部分を計測するべきか / 計測可能か?
• 計測する値とメトリックの関係は?• Ex) iostat の値 ≠ ストレージデバイスのIOPS
計測手段 目的のためにはなんでもやる
例: OLTPシステム構築
• 最も少ない計測回数を目指す• 愚直にやるとパラメタの組み合わせ爆発• モデルが教えてくれるはず
計測の実施
• Ex) I/O並列度 v.s. IOPS
例: OLTPシステム構築
• モデルの予想と一致• システムを正しく理解できた
• モデルの予想と不一致• モデルを修正してretry
計測結果とモデルの照合
計測はモデル化のしもべ• 目的ありき・モデルありきで計測しよう
• 計測ツールを走らせるその前に:• ワークロードは?
• メトリックは?• 測定環境は?• 目的に適った測定ツール?
• 結果とモデルの比較を忘れない
それでもやっぱり計測は楽しい• プログラマの性
• 計測ツールを作る
• 新しいツールを試してみる
• あらゆるメトリックを調べあげる
• ほどほどに・・・
参考) 最近の計測ツールまとめBrendan GreggLinux Performance Analysis and ToolsSCaLE 11x, 2013
SIMULATION
Modeling
MeasurementSimulation
SIMULATION• まだ見ぬシステムの性能を知る手段
• 存在しないハードウェアの性能予測• 実装前のソフトウェアの性能予測
• 計測したいシステムを模した環境を作り出す• 専用ハードウェア• ソフトウェアによるシミュレーション実行
I/O REPLAY• I/Oパターンを再生してI/Oバウンドな処理をシミュレーションする方法
TPC-Cベンチマーク SF=100w/ blktrace
色々なデバイスでI/O REPLAYHDD
SSD1
SSD2
シミュレーションの勘所• 「もしもこうだったら?」という仮定を分析する技術
• シミュレーションはシステムの一部を”端折る”行為• 計測 / モデル化で正しさを確認することが重要
3つの基本形
• 2つ以上を使いこなすことが肝心
Modeling
MeasurementSimulation validate
validatevalida
te
性能測定とデータベースエンジニア• データベースシステムとは
• データの管理・取得のためのブラックボックス• ユーザが「やりたいこと」だけに集中できる(のが理想)
性能測定とデータベースエンジニア• データベースというブラックボックスの番人として
• ブラックボックスの中の理解が力量につながる• 正しい性能測定ができる人は強い
データベースエンジニア
として一段高みに登るために
はじめよう
性能測定道