性能測定道 事始め編
-
Upload
yuto-hayamizu -
Category
Technology
-
view
8.423 -
download
2
description
Transcript of 性能測定道 事始め編
![Page 1: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/1.jpg)
性能測定道早水 悠登 (東大)
Thanks to
合田和生(東大) 山田浩之(東大) 喜連川優(東大, NII)
2013/10/05 日本PostgreSQLユーザ会(JPUG)第27回しくみ+アプリケーション 勉強会
![Page 2: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/2.jpg)
• 氏名:早水 悠登 (はやみず ゆうと)
• a.k.a はやみず (@hayamiz)• 所属:東京大学(略)喜連川研究室
• データベースシステムの研究• 博士課程3年目• 趣味:計算機の性能測定
• 研究室での仕事(のひとつ):計算機の性能測定
$ whoami
![Page 3: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/3.jpg)
データベース研究と性能測定• 大学での研究:”10年後の当たり前” を生み出す仕事
• 誰も使ったことのない新しいマシンで• 誰も考えたことのない新しいデータベースシステムを
• 新しいマシンの性能がわからないと研究できない!• 実装したシステムの性能がわからないと論文が書けない!
![Page 4: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/4.jpg)
なぜ今
性能測定なのか?
![Page 5: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/5.jpg)
計算機の”常識”の大転換• シングルコアからマルチコアへ
• UMAからNUMAへ
• 全てが on die へ
• メモリコントローラ
• PCIeコントローラ
• ...graph by courtesy of Herb Sutter
http://www.gotw.ca/publications/concurrency-ddj.htm
“The free lunch is over”
![Page 6: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/6.jpg)
計算機の”常識”の大転換• 新たなストレージデバイスとアーキテクチャの変遷
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...
![Page 7: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/7.jpg)
変わり続ける計算機の姿を
正確に捉えつづけることが
エンジニアの力量を決める
![Page 8: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/8.jpg)
目の前にある計算機の姿を
正確に捉えるための技芸が
性能測定である
![Page 9: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/9.jpg)
目の前にある計算機の姿を
正確に捉えるための技芸が
性能測定である
![Page 10: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/10.jpg)
技芸The Art
![Page 11: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/11.jpg)
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.
一般的な認識に反して、性能測定とは技芸である。芸術作品がそうであるように、価値ある性能測定は機械的に行うことはできない。あらゆる性能測定において、モデル化を行うシステムに対する深い知見は欠くことができず、手法・ワークロード・ツールを注意深く選択することが必要である。
![Page 12: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/12.jpg)
技ある所に
道あり
![Page 13: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/13.jpg)
性能測定道事始め編
![Page 14: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/14.jpg)
性能測定道• 其一 事始め編(本日)
• 計算機性能測定の心と基本形• 其弐 実践編(次回)
• 計算機性能測定の手法とその実践
![Page 15: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/15.jpg)
性能測定の心
![Page 16: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/16.jpg)
測定の心は測定の外にあり• 何のために性能測定をするのか?
• 性能測定は戦略目的を達成するための戦術• 目的から性能測定の手法を導出する
![Page 17: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/17.jpg)
性能測定の技
![Page 18: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/18.jpg)
3つの基本形
Modeling
MeasurementSimulation
![Page 19: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/19.jpg)
MODELING
Modeling
MeasurementSimulation
![Page 20: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/20.jpg)
MODELING -モデル化-• 科学的アプローチの原点
• 測定対象の”モデル”を作る• 内部の動作原理を知る
• 性能に影響を与える要素を選び出す• 性能を数式化する
![Page 21: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/21.jpg)
例: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
![Page 22: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/22.jpg)
SEQ. READ 性能
外側のシリンダ 内側のシリンダ
モデル通り内側ほど低スループット
Graph by courtesy of 山田浩之
![Page 23: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/23.jpg)
例: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
![Page 24: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/24.jpg)
1ブロックのI/O遅延
6ms 回転遅延とほぼ一致
Graph by courtesy of 山田浩之
![Page 25: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/25.jpg)
待ち行列によるモデル化• 待ち行列モデル• サービスを受ける客が平均到着率λでやってくる• サービス窓口は平均時間μで1人のサービスを終える
• 計算機システムの理論的性能モデル化の基礎• CPU : 客=CPU命令、サービス=CPU命令実行• ストレージ: 客=I/Oリクエスト、サービス=I/O実行• データベースシステム:客=SQLクエリ、サービス=クエリ実行• ネットワークルータ:客=パケット、サービス=パケット転送• etc ...
image by courtesy of Wikimedia Commons
![Page 26: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/26.jpg)
待ち行列と性能モデル• 簡単な待ち行列は理論的に性能がわかる
• M/M/1:窓口が1つ、何人でも待てる
λμ
サービス待ち時間
系内待ち時間= 応答時間
系内に客がいない確率
系内に客がn人いる確率
サービス待ち時間
応答時間
![Page 27: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/27.jpg)
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).
![Page 28: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/28.jpg)
モデル化の効果• モデルによって実際の計測前に性能が予想できる
• 計測は予想の確認に過ぎない
• 適切なモデル=測定対象の理解そのもの• モデル化が全てを決めるといっても過言ではない
![Page 29: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/29.jpg)
MEASUREMENT
Modeling
MeasurementSimulation
![Page 30: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/30.jpg)
MEASUREMENT -計測-• 計測はモデル化のしもべ
• モデルなき計測は意味を成さない• モデルが計測結果の正しさを裏付ける
• 計測でモデルの正しさを確認する
![Page 31: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/31.jpg)
意味のある計測をするために
• 計測するワークロードを決める
• アプリケーションの特徴は?• 計測するメトリックを決める• 何がわかると目的を達成することができるか?
• 計測するメトリックをモデル化する
• 計測する環境を決める• 計測するメトリックが見える環境になっている?
• 計測する手段を考える• 計測するメトリクスが採れるか?
• 計測を実施する• 計測結果とモデルを照らし合わせる
目的から計測手法を導出する
Ex) IOPS, MB/s, ... of HDD, SSD...
考えるべきことは結構多いNG: ベンチマークツールを実行してみるだけ
![Page 32: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/32.jpg)
例: OLTPシステム構築
• XXXX tpsを達成可能なOLPTシステムを作るためのストレージ選び
目的
ワークロード• アプリケーションの特徴は?• Ex) ストレージに対するランダムI/O発行
• ストレージのランダムアクセスIOPS
メトリック
![Page 33: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/33.jpg)
例: OLTPシステム構築
• メトリックに影響を与える要素は?• Ex) ランダムアクセスIOPS• I/O発行サイズ : 8KB~16KB• I/O並列発行数 : 1 ~ ...• HBAキュー長• ストレージコントローラキュー長• etc ...
メトリックのモデル化
![Page 34: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/34.jpg)
例: OLTPシステム構築
• システムのリソースの流れを注意深く設計する• メトリクス: ストレージのランダムアクセスIOPS• リソース = I/Oリクエスト• ストレージデバイスまでI/Oリクエストが流れているか?
計測環境
![Page 35: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/35.jpg)
例: OLTPシステム構築
• 適切なツールを選ぶ or 作る• システムのどの部分を計測するべきか / 計測可能か?
• 計測する値とメトリックの関係は?• Ex) iostat の値 ≠ ストレージデバイスのIOPS
計測手段 目的のためにはなんでもやる
![Page 36: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/36.jpg)
例: OLTPシステム構築
• 最も少ない計測回数を目指す• 愚直にやるとパラメタの組み合わせ爆発• モデルが教えてくれるはず
計測の実施
• Ex) I/O並列度 v.s. IOPS
![Page 37: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/37.jpg)
例: OLTPシステム構築
• モデルの予想と一致• システムを正しく理解できた
• モデルの予想と不一致• モデルを修正してretry
計測結果とモデルの照合
![Page 38: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/38.jpg)
計測はモデル化のしもべ• 目的ありき・モデルありきで計測しよう
• 計測ツールを走らせるその前に:• ワークロードは?
• メトリックは?• 測定環境は?• 目的に適った測定ツール?
• 結果とモデルの比較を忘れない
![Page 39: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/39.jpg)
それでもやっぱり計測は楽しい• プログラマの性
• 計測ツールを作る
• 新しいツールを試してみる
• あらゆるメトリックを調べあげる
• ほどほどに・・・
参考) 最近の計測ツールまとめBrendan GreggLinux Performance Analysis and ToolsSCaLE 11x, 2013
![Page 40: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/40.jpg)
SIMULATION
Modeling
MeasurementSimulation
![Page 41: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/41.jpg)
SIMULATION• まだ見ぬシステムの性能を知る手段
• 存在しないハードウェアの性能予測• 実装前のソフトウェアの性能予測
• 計測したいシステムを模した環境を作り出す• 専用ハードウェア• ソフトウェアによるシミュレーション実行
![Page 42: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/42.jpg)
I/O REPLAY• I/Oパターンを再生してI/Oバウンドな処理をシミュレーションする方法
TPC-Cベンチマーク SF=100w/ blktrace
![Page 43: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/43.jpg)
色々なデバイスでI/O REPLAYHDD
SSD1
SSD2
![Page 44: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/44.jpg)
シミュレーションの勘所• 「もしもこうだったら?」という仮定を分析する技術
• シミュレーションはシステムの一部を”端折る”行為• 計測 / モデル化で正しさを確認することが重要
![Page 45: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/45.jpg)
3つの基本形
• 2つ以上を使いこなすことが肝心
Modeling
MeasurementSimulation validate
validatevalida
te
![Page 46: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/46.jpg)
性能測定とデータベースエンジニア• データベースシステムとは
• データの管理・取得のためのブラックボックス• ユーザが「やりたいこと」だけに集中できる(のが理想)
![Page 47: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/47.jpg)
性能測定とデータベースエンジニア• データベースというブラックボックスの番人として
• ブラックボックスの中の理解が力量につながる• 正しい性能測定ができる人は強い
![Page 48: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/48.jpg)
データベースエンジニア
として一段高みに登るために
![Page 49: 性能測定道 事始め編](https://reader030.fdocuments.net/reader030/viewer/2022020101/55972b5a1a28ab58708b4704/html5/thumbnails/49.jpg)
はじめよう
性能測定道