性能測定道 事始め編

49
性能測定道 早水 悠登 (東大) Thanks to 合田和生(東大) 山田浩之(東大) 喜連川優(東大, NII) 2013/10/05 日本PostgreSQLユーザ会(JPUG) 第27回しくみ+アプリケーション 勉強会

Upload: yuto-hayamizu

Post on 04-Jul-2015

8.422 views

Category:

Technology


2 download

DESCRIPTION

2013/10/05に開催された日本PostgreSQLユーザ会 第27回しくみ+アプリケーション勉強会での講演です。 http://www.postgresql.jp/wg/shikumi/shikumi27 ---- コンピュータシステムにおける性能測定とは、技芸です。 性能測定というと、単に測定ツールを実行するだけの作業だと考えられがちです。しかし実際には、何のために測定をするのか、そのために何を測定するべきか、そして何を使って測定するべきかを理解した上で行わなければ全く意味を成さない、深みのある技芸の世界です。 講演者の所属する研究室では長年にわたりデータベースシステムの研究・開発を行ってきました。その過程で培われた性能測定の技芸について、最近の実例も交えつつその考え方をご紹介したいと思います。

TRANSCRIPT

Page 1: 性能測定道 事始め編

性能測定道早水 悠登 (東大)

Thanks to

合田和生(東大) 山田浩之(東大) 喜連川優(東大, NII)

2013/10/05 日本PostgreSQLユーザ会(JPUG)第27回しくみ+アプリケーション 勉強会

Page 2: 性能測定道 事始め編

• 氏名:早水 悠登 (はやみず ゆうと)

• a.k.a はやみず (@hayamiz)• 所属:東京大学(略)喜連川研究室

• データベースシステムの研究• 博士課程3年目• 趣味:計算機の性能測定

• 研究室での仕事(のひとつ):計算機の性能測定

$ whoami

Page 3: 性能測定道 事始め編

データベース研究と性能測定• 大学での研究:”10年後の当たり前” を生み出す仕事

• 誰も使ったことのない新しいマシンで• 誰も考えたことのない新しいデータベースシステムを

• 新しいマシンの性能がわからないと研究できない!• 実装したシステムの性能がわからないと論文が書けない!

Page 4: 性能測定道 事始め編

なぜ今

性能測定なのか?

Page 5: 性能測定道 事始め編

計算機の”常識”の大転換• シングルコアからマルチコアへ

• 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: 性能測定道 事始め編

計算機の”常識”の大転換• 新たなストレージデバイスとアーキテクチャの変遷

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: 性能測定道 事始め編

変わり続ける計算機の姿を

正確に捉えつづけることが

エンジニアの力量を決める

Page 8: 性能測定道 事始め編

目の前にある計算機の姿を

正確に捉えるための技芸が

性能測定である

Page 9: 性能測定道 事始め編

目の前にある計算機の姿を

正確に捉えるための技芸が

性能測定である

Page 10: 性能測定道 事始め編

技芸The Art

Page 11: 性能測定道 事始め編

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: 性能測定道 事始め編

技ある所に

道あり

Page 13: 性能測定道 事始め編

性能測定道事始め編

Page 14: 性能測定道 事始め編

性能測定道• 其一 事始め編(本日)

• 計算機性能測定の心と基本形• 其弐 実践編(次回)

• 計算機性能測定の手法とその実践

Page 15: 性能測定道 事始め編

性能測定の心

Page 16: 性能測定道 事始め編

測定の心は測定の外にあり• 何のために性能測定をするのか?

• 性能測定は戦略目的を達成するための戦術• 目的から性能測定の手法を導出する

Page 17: 性能測定道 事始め編

性能測定の技

Page 18: 性能測定道 事始め編

3つの基本形

Modeling

MeasurementSimulation

Page 19: 性能測定道 事始め編

MODELING

Modeling

MeasurementSimulation

Page 20: 性能測定道 事始め編

MODELING -モデル化-• 科学的アプローチの原点

• 測定対象の”モデル”を作る• 内部の動作原理を知る

• 性能に影響を与える要素を選び出す• 性能を数式化する

Page 21: 性能測定道 事始め編

例: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: 性能測定道 事始め編

SEQ. READ 性能

外側のシリンダ 内側のシリンダ

モデル通り内側ほど低スループット

Graph by courtesy of 山田浩之

Page 23: 性能測定道 事始め編

例: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: 性能測定道 事始め編

1ブロックのI/O遅延

6ms 回転遅延とほぼ一致

Graph by courtesy of 山田浩之

Page 25: 性能測定道 事始め編

待ち行列によるモデル化• 待ち行列モデル• サービスを受ける客が平均到着率λでやってくる• サービス窓口は平均時間μで1人のサービスを終える

• 計算機システムの理論的性能モデル化の基礎• CPU : 客=CPU命令、サービス=CPU命令実行• ストレージ: 客=I/Oリクエスト、サービス=I/O実行• データベースシステム:客=SQLクエリ、サービス=クエリ実行• ネットワークルータ:客=パケット、サービス=パケット転送• etc ...

image by courtesy of Wikimedia Commons

Page 26: 性能測定道 事始め編

待ち行列と性能モデル• 簡単な待ち行列は理論的に性能がわかる

• M/M/1:窓口が1つ、何人でも待てる

λμ

サービス待ち時間

系内待ち時間= 応答時間

系内に客がいない確率

系内に客がn人いる確率

サービス待ち時間

応答時間

Page 27: 性能測定道 事始め編

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: 性能測定道 事始め編

モデル化の効果• モデルによって実際の計測前に性能が予想できる

• 計測は予想の確認に過ぎない

• 適切なモデル=測定対象の理解そのもの• モデル化が全てを決めるといっても過言ではない

Page 29: 性能測定道 事始め編

MEASUREMENT

Modeling

MeasurementSimulation

Page 30: 性能測定道 事始め編

MEASUREMENT -計測-• 計測はモデル化のしもべ

• モデルなき計測は意味を成さない• モデルが計測結果の正しさを裏付ける

• 計測でモデルの正しさを確認する

Page 31: 性能測定道 事始め編

意味のある計測をするために

• 計測するワークロードを決める

• アプリケーションの特徴は?• 計測するメトリックを決める• 何がわかると目的を達成することができるか?

• 計測するメトリックをモデル化する

• 計測する環境を決める• 計測するメトリックが見える環境になっている?

• 計測する手段を考える• 計測するメトリクスが採れるか?

• 計測を実施する• 計測結果とモデルを照らし合わせる

目的から計測手法を導出する

Ex) IOPS, MB/s, ... of HDD, SSD...

考えるべきことは結構多いNG: ベンチマークツールを実行してみるだけ

Page 32: 性能測定道 事始め編

例: OLTPシステム構築

• XXXX tpsを達成可能なOLPTシステムを作るためのストレージ選び

目的

ワークロード• アプリケーションの特徴は?• Ex) ストレージに対するランダムI/O発行

• ストレージのランダムアクセスIOPS

メトリック

Page 33: 性能測定道 事始め編

例: OLTPシステム構築

• メトリックに影響を与える要素は?• Ex) ランダムアクセスIOPS• I/O発行サイズ : 8KB~16KB• I/O並列発行数 : 1 ~ ...• HBAキュー長• ストレージコントローラキュー長• etc ...

メトリックのモデル化

Page 34: 性能測定道 事始め編

例: OLTPシステム構築

• システムのリソースの流れを注意深く設計する• メトリクス: ストレージのランダムアクセスIOPS• リソース = I/Oリクエスト• ストレージデバイスまでI/Oリクエストが流れているか?

計測環境

Page 35: 性能測定道 事始め編

例: OLTPシステム構築

• 適切なツールを選ぶ or 作る• システムのどの部分を計測するべきか / 計測可能か?

• 計測する値とメトリックの関係は?• Ex) iostat の値 ≠ ストレージデバイスのIOPS

計測手段 目的のためにはなんでもやる

Page 36: 性能測定道 事始め編

例: OLTPシステム構築

• 最も少ない計測回数を目指す• 愚直にやるとパラメタの組み合わせ爆発• モデルが教えてくれるはず

計測の実施

• Ex) I/O並列度 v.s. IOPS

Page 37: 性能測定道 事始め編

例: OLTPシステム構築

• モデルの予想と一致• システムを正しく理解できた

• モデルの予想と不一致• モデルを修正してretry

計測結果とモデルの照合

Page 38: 性能測定道 事始め編

計測はモデル化のしもべ• 目的ありき・モデルありきで計測しよう

• 計測ツールを走らせるその前に:• ワークロードは?

• メトリックは?• 測定環境は?• 目的に適った測定ツール?

• 結果とモデルの比較を忘れない

Page 39: 性能測定道 事始め編

それでもやっぱり計測は楽しい• プログラマの性

• 計測ツールを作る

• 新しいツールを試してみる

• あらゆるメトリックを調べあげる

• ほどほどに・・・

参考) 最近の計測ツールまとめBrendan GreggLinux Performance Analysis and ToolsSCaLE 11x, 2013

Page 40: 性能測定道 事始め編

SIMULATION

Modeling

MeasurementSimulation

Page 41: 性能測定道 事始め編

SIMULATION• まだ見ぬシステムの性能を知る手段

• 存在しないハードウェアの性能予測• 実装前のソフトウェアの性能予測

• 計測したいシステムを模した環境を作り出す• 専用ハードウェア• ソフトウェアによるシミュレーション実行

Page 42: 性能測定道 事始め編

I/O REPLAY• I/Oパターンを再生してI/Oバウンドな処理をシミュレーションする方法

TPC-Cベンチマーク SF=100w/ blktrace

Page 43: 性能測定道 事始め編

色々なデバイスでI/O REPLAYHDD

SSD1

SSD2

Page 44: 性能測定道 事始め編

シミュレーションの勘所• 「もしもこうだったら?」という仮定を分析する技術

• シミュレーションはシステムの一部を”端折る”行為• 計測 / モデル化で正しさを確認することが重要

Page 45: 性能測定道 事始め編

3つの基本形

• 2つ以上を使いこなすことが肝心

Modeling

MeasurementSimulation validate

validatevalida

te

Page 46: 性能測定道 事始め編

性能測定とデータベースエンジニア• データベースシステムとは

• データの管理・取得のためのブラックボックス• ユーザが「やりたいこと」だけに集中できる(のが理想)

Page 47: 性能測定道 事始め編

性能測定とデータベースエンジニア• データベースというブラックボックスの番人として

• ブラックボックスの中の理解が力量につながる• 正しい性能測定ができる人は強い

Page 48: 性能測定道 事始め編

データベースエンジニア

として一段高みに登るために

Page 49: 性能測定道 事始め編

はじめよう

性能測定道