みんな、
ベンチマークどうやってるの?



  サーバ擬人化ユーザ会
  @sechiro
  http://d.hatena.ne.jp/sechiro/
自己紹介
●   Twitter ID: @sechiro
     ● サーバ擬人化ユーザ会

     ● サーバ擬人化エバンジェリスト


●   主な仕事
    ●   ざびたん
    ●   パスワードの擬人化
    ●   インフラエンジニア双六
    ●   新人インフラエンジニア向け
        メイド喫茶紹介
    ●   昼の仕事は便利屋SE
                           ざびたん2 護&サチ
本日のお題
●   みんな、ベンチマークどうやっ
    てるの?
    ●
        ベンチマークはみんなやってる
        はずなのに、どうやってるのか
        という話を聞く機会が少ない
    ●   世の中のベンチマーク結果は玉
        石混交…
    ●   なので、自分が意識している点
        をお話ししてみたい
    ●   今回は「計画と準備」を中心に
コンテンツ
●   ベンチマークの計画を立てる
●   ベンチマークの対象を知る
●   取得すべき情報を明確に
●   ベンチマークツールの選定
●   分析・レポート
ベンチマークの計画を立てる
●   何のベンチマークを取るの?
    ●
        HW性能?
    ●   アプリ性能?
    ●   ボトルネック解析?
    ●
        プロダクト比較?
●   目的が違うと、やるべきこと
    が全然違ってくる
目的別戦略
●   HW性能?
    ● TPCとかほかと比較できる一般的な基準を採用
●   アプリ性能?
    ●   基礎的なスコア?
        –   応答性能 → 応答時間がちゃんと取れるツール
        –   スループット → スループットをちゃんとカウントするツール
        –   処理時間 → 時間をちゃんと計測、timeコマンドでもおk
        –   チューニングはせず、基本設定のみがベター
    ●   最大性能?
        –   チューニングの限界に挑戦 → 多少の無茶はおk
●   ボトルネック解析?
    ●   既存のログを解析して戦略を立てることから
●   プロダクト比較?
    ●   観点とベンチマークの条件を明確にする
    ●   内容次第では、一方的な結果になりがち
●   いずれにしてもリソース使用状況は必ず取得する
    ●   そうしないと結果の妥当性が担保できない
ベンチマーク対象を知る
●   ベンチマーク対象のアーキテ
    クチャを把握する
    ●
        何を計測しているのかを明確に
    ●
        開始当初はおおざっぱでもよい
        –   ベンチマークしてみてわかること
            もある
        –   少なくとも分析のたたき台は必須
    ●   アーキテクチャから最大性能を
        概算できているとよい
例:とあるHBaseのベンチマーク
   負荷を掛けきれる?
                       知りたいのは
                        基本性能                           それぞれの操作
                                                      にかかった時間は
                                                      どうやってわかる?

                      JVMヒープと
                      OS管理メモリ                           ネットワーク通信
                     の使い分けは?                             の回数は?



                                                                 実際にディスクに
                                                                  書いてるの?
                                                                   fsync?

                                                             1GbEだとスルー
                                                             プットとRTTは?
               http://www.slideshare.net/sechiro/osc2012-spring-hphbasereport
取得すべき情報を明確に
●   どの情報を取るのか?
    ●   基本的には取れる情報はすべて取る
        –   sar -A とか ps aumx?とか
        –   あとからは取り返せない
    ●   情報取得のオーバーヘッドはほとんど性能
        に影響を与えない
    ●   各部分の性能がどの性能情報から判断でき
        るかを確認して、網羅性を確認する
    ●   必要な情報収集はスクリプト化、ツール化
        して自動化すべし
        –   実行後、結果をExcelに貼るだけの状態に
        –   設定含めエビデンスはすべて自動収集
        –   人手が入ると時間がかかり、信頼性も落ちる
例:とあるHBaseのベンチマーク
   応答時間、スループット
   クライアントでもsarとか                            JVMヒープやGCは
      を一緒に取る                                メトリクスとログから

               HBaseレイヤは                                   プロセスごとの値は
                 HBaseの                                      psやtopから
                 メトリクス
                                          HDFSレイヤは
                                           Hadoopの
                                            メトリクス


                                                                  OSレイヤは
                                                                 sarや/procから




              http://www.slideshare.net/sechiro/osc2012-spring-hphbasereport
そんなツールで大丈夫か?
●   ベンチマークツールを疑う
    ●
        ベンチマークツールのソースを
        読む
    ●   ツールが何を測定しているのか
        確認
    ●   それが自分のベンチマークの目
        的に適っているのかを検討
    ●   ちゃんと見ないと求めていたも
        のと違う結果が出てしまう
分析・レポート
●   分析・レポートはどうするの?
    ●
        Excel万能説
         – 一次集計をCSVで出力して貼り付け
         – あとからいろいろ解析できる
    ●   定形のグラフを出すだけでよいな
        ら”gnuplot”も便利
        –  設定ファイルつくるのが手間
         – 作ってしまえば、一気に大量のグラフを
           作って、HTMLに埋め込んで閲覧・レポート
           化まで自動化できる
         – 最新版を自分でビルドすべし
    ●
        sar のデータをみるなら”kSar”とかも
        よいらしい
まとめ
●   ベンチマークは計画と準備が重要
    ●   ちゃんとやらないと使えないデータばか
        りになってしまう。
    ●   性能値の正当性を感覚的に理解できてい
        ると、インフラエンジニア的にはかっこ
        いい
●   ベンチのノウハウは聞く機会が少ない
    ので、みなさんがどのようにやってい
    るのか聞いてみたい
ありがとうございました!

【Hpcstudy】みんな、ベンチマークどうやってるの?

  • 1.
  • 2.
    自己紹介 ● Twitter ID: @sechiro ● サーバ擬人化ユーザ会 ● サーバ擬人化エバンジェリスト ● 主な仕事 ● ざびたん ● パスワードの擬人化 ● インフラエンジニア双六 ● 新人インフラエンジニア向け メイド喫茶紹介 ● 昼の仕事は便利屋SE ざびたん2 護&サチ
  • 3.
    本日のお題 ● みんな、ベンチマークどうやっ てるの? ● ベンチマークはみんなやってる はずなのに、どうやってるのか という話を聞く機会が少ない ● 世の中のベンチマーク結果は玉 石混交… ● なので、自分が意識している点 をお話ししてみたい ● 今回は「計画と準備」を中心に
  • 4.
    コンテンツ ● ベンチマークの計画を立てる ● ベンチマークの対象を知る ● 取得すべき情報を明確に ● ベンチマークツールの選定 ● 分析・レポート
  • 5.
    ベンチマークの計画を立てる ● 何のベンチマークを取るの? ● HW性能? ● アプリ性能? ● ボトルネック解析? ● プロダクト比較? ● 目的が違うと、やるべきこと が全然違ってくる
  • 6.
    目的別戦略 ● HW性能? ● TPCとかほかと比較できる一般的な基準を採用 ● アプリ性能? ● 基礎的なスコア? – 応答性能 → 応答時間がちゃんと取れるツール – スループット → スループットをちゃんとカウントするツール – 処理時間 → 時間をちゃんと計測、timeコマンドでもおk – チューニングはせず、基本設定のみがベター ● 最大性能? – チューニングの限界に挑戦 → 多少の無茶はおk ● ボトルネック解析? ● 既存のログを解析して戦略を立てることから ● プロダクト比較? ● 観点とベンチマークの条件を明確にする ● 内容次第では、一方的な結果になりがち ● いずれにしてもリソース使用状況は必ず取得する ● そうしないと結果の妥当性が担保できない
  • 7.
    ベンチマーク対象を知る ● ベンチマーク対象のアーキテ クチャを把握する ● 何を計測しているのかを明確に ● 開始当初はおおざっぱでもよい – ベンチマークしてみてわかること もある – 少なくとも分析のたたき台は必須 ● アーキテクチャから最大性能を 概算できているとよい
  • 8.
    例:とあるHBaseのベンチマーク 負荷を掛けきれる? 知りたいのは 基本性能 それぞれの操作 にかかった時間は どうやってわかる? JVMヒープと OS管理メモリ ネットワーク通信 の使い分けは? の回数は? 実際にディスクに 書いてるの? fsync? 1GbEだとスルー プットとRTTは? http://www.slideshare.net/sechiro/osc2012-spring-hphbasereport
  • 9.
    取得すべき情報を明確に ● どの情報を取るのか? ● 基本的には取れる情報はすべて取る – sar -A とか ps aumx?とか – あとからは取り返せない ● 情報取得のオーバーヘッドはほとんど性能 に影響を与えない ● 各部分の性能がどの性能情報から判断でき るかを確認して、網羅性を確認する ● 必要な情報収集はスクリプト化、ツール化 して自動化すべし – 実行後、結果をExcelに貼るだけの状態に – 設定含めエビデンスはすべて自動収集 – 人手が入ると時間がかかり、信頼性も落ちる
  • 10.
    例:とあるHBaseのベンチマーク 応答時間、スループット クライアントでもsarとか JVMヒープやGCは を一緒に取る メトリクスとログから HBaseレイヤは プロセスごとの値は HBaseの psやtopから メトリクス HDFSレイヤは Hadoopの メトリクス OSレイヤは sarや/procから http://www.slideshare.net/sechiro/osc2012-spring-hphbasereport
  • 11.
    そんなツールで大丈夫か? ● ベンチマークツールを疑う ● ベンチマークツールのソースを 読む ● ツールが何を測定しているのか 確認 ● それが自分のベンチマークの目 的に適っているのかを検討 ● ちゃんと見ないと求めていたも のと違う結果が出てしまう
  • 12.
    分析・レポート ● 分析・レポートはどうするの? ● Excel万能説 – 一次集計をCSVで出力して貼り付け – あとからいろいろ解析できる ● 定形のグラフを出すだけでよいな ら”gnuplot”も便利 – 設定ファイルつくるのが手間 – 作ってしまえば、一気に大量のグラフを 作って、HTMLに埋め込んで閲覧・レポート 化まで自動化できる – 最新版を自分でビルドすべし ● sar のデータをみるなら”kSar”とかも よいらしい
  • 13.
    まとめ ● ベンチマークは計画と準備が重要 ● ちゃんとやらないと使えないデータばか りになってしまう。 ● 性能値の正当性を感覚的に理解できてい ると、インフラエンジニア的にはかっこ いい ● ベンチのノウハウは聞く機会が少ない ので、みなさんがどのようにやってい るのか聞いてみたい
  • 14.