Slide 1

Slide 1 text

         C L L, Inc. All ights eserved 
 pannerウォームアップについて


Slide 2

Slide 2 text

         C L L, Inc. All ights eserved 
 • 駒崎大輔
 • 2019年入社
 • サーバー基盤グループLCEチーム
 – 負荷試験
 – 社内ライブラリ開発/サポート
 
 自己紹介
 2

Slide 3

Slide 3 text

         C L L, Inc. All ights eserved 
 Spannerウォームアップ
 ウォームアップとはなにか
 実際のウォームアップ方法
 
 
 3

Slide 4

Slide 4 text

         C L L, Inc. All ights eserved 
 ウォームアップとはなにか
 4 事前にスプリットを確保しておくことで pannerで急激に流 入するトラフィックを捌けるようにする
 
 ローンチ前および負荷試験の前に必要
 


Slide 5

Slide 5 text

         C L L, Inc. All ights eserved 
 スプリットとは
 出典: https://medium.com/google-cloud-jp/cloud-spanner-aruaru-quiz-6430fcf80a1 
 5

Slide 6

Slide 6 text

         C L L, Inc. All ights eserved 
 • ローンチ時がもっとも負荷が高い
 • ユーザーが大量に新規登録する
 • ユーザーテーブルのレコード数がとても多くなる
 • スプリットを大量に確保しておく必要あり
 ゲームリリース時の負荷
 6

Slide 7

Slide 7 text

         C L L, Inc. All ights eserved 
 Spannerの特性
 7 • ノードを増減することで柔軟なスケールが可能
 • ノードを増やしてもデータが空ならストレージはコールド 状態
 • スプリットはテーブル、インデックスごとに作成される
 
 


Slide 8

Slide 8 text

         C L L, Inc. All ights eserved 
 Spannerの特性
 • ノード数(処理ユニット)を増やしたあとに通常はテーブ ルのデータサイズおよび負荷によってスプリットが緩や かに発生していく
 • ゲームローンチ時の急激に負荷が高まるケースではス プリットが間に合わない
 
 →ウォームアップが必要
 8

Slide 9

Slide 9 text

         C L L, Inc. All ights eserved 
 ウォームアップする
 • リリース時の負荷を想定し各テーブルをスプリットさせ る
 • 負荷はユーザー数×実際にアプリをプレイした際のリク エスト傾向によって見積もり
 
 公式にも実際に近しい負荷をかけることによってウォーム アップすることが必要だと書かれている
 
 
 9

Slide 10

Slide 10 text

         C L L, Inc. All ights eserved 
 ウォームアップする
 • テーブルごとに想定負荷に近しいinsertを行う
 • 実際に負荷試験を行ってウォームアップの効果を検証 する
 10

Slide 11

Slide 11 text

         C L L, Inc. All ights eserved 
 ウォームアップする
 ウォームアップ→負荷試験→試験結果の確認→…
 
 上記を繰り返すことによってウォームアップの精度を高め る
 ローンチの精度を高めることにも繋がる
 
 11

Slide 12

Slide 12 text

         C L L, Inc. All ights eserved 
 • 実際にアプリを複数人でプレイしログを取得する
 • ログを模倣した動きをするbotを作成する
 • 想定同時接続数分のbotを起動し負荷をかける
 
 負荷試験する
 12

Slide 13

Slide 13 text

         C L L, Inc. All ights eserved 
 負荷試験する
 13 bot(Pod) parallelism: 5
 completions: 5
 ser: 1000
 bot(Pod) bot(Pod) bot(Pod) bot(Pod) bot(User) bot(User) API Endpoint 1000並列
 Job

Slide 14

Slide 14 text

         C L L, Inc. All ights eserved 
 • A Iのレイテンシ
 • 各クエリのレイテンシ
 • pannerのC 使用率
 • ホットスポットが発生していないか
 • スプリットが十分か
 試験結果の確認
 14

Slide 15

Slide 15 text

         C L L, Inc. All ights eserved 
 Key isualizerによってホットスポットがないか確認をする
 
 試験結果の確認
 15

Slide 16

Slide 16 text

         C L L, Inc. All ights eserved 
 試験結果の確認
 16

Slide 17

Slide 17 text

         C L L, Inc. All ights eserved 
 ウォームアップツール
 自作のウォームアップツール(dankichi)
 
 • テーブルを指定するだけでinsertしていく
 • 各カラムの型にあわせた値を自動設定
 • Kに IDを自動生成したり、カラムによって実際に取 りうる範囲の値のみ設定するなどカスタマイズ可能
 
 17

Slide 18

Slide 18 text

         C L L, Inc. All ights eserved 
 ウォームアップツール
 イメージ図
 
 
 18 dankichi warmer Spanner warmer warmer ノード数変更
 C sage取得
 insert
 od数調整


Slide 19

Slide 19 text

         C L L, Inc. All ights eserved 
 ウォームアップツール
 19 定期的に pannerのエンジニアの方と &Aやフィードバッ クを行い、ウォームアップ方法や負荷試験方法を改善して いっています。
 


Slide 20

Slide 20 text

         C L L, Inc. All ights eserved 
 • ウォームアップによって pannerの性能を引き出す
 • 負荷試験によってウォームアップの精度を高める
 • 安全なローンチが実現
 まとめ
 20

Slide 21

Slide 21 text

         C L L, Inc. All ights eserved 
 どうもありがとうございました