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