性能測定道 事始め編

42,068 views

Published on

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

Published in: Technology
0 Comments
53 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
42,068
On SlideShare
0
From Embeds
0
Number of Embeds
26,421
Actions
Shares
0
Downloads
90
Comments
0
Likes
53
Embeds 0
No embeds

No notes for slide

性能測定道 事始め編

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

×