Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Spannerウォームアップについて
/ColoplTech-02-03

E704514df1d69d511c4c74771a40c8f5?s=47 COLOPL Inc.
February 16, 2022

 Spannerウォームアップについて
/ColoplTech-02-03

※資料内の参照リンクを選択し閲覧する場合は、ダウンロードをお願いいたします

\積極的に技術発信を行なっております/
▽ Twitter/COLOPL_Tech
https://twitter.com/colopl_tech

▽ connpassページ
http://colopl.connpass.com

▽ COLOPL Tech Blog
http://blog.colopl.dev

E704514df1d69d511c4c74771a40c8f5?s=128

COLOPL Inc.

February 16, 2022
Tweet

More Decks by COLOPL Inc.

Other Decks in Technology

Transcript

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


  2.          C L L, Inc. All ights eserved 
 • 駒崎大輔


    • 2019年入社
 • サーバー基盤グループLCEチーム
 – 負荷試験
 – 社内ライブラリ開発/サポート
 
 自己紹介
 2
  3.          C L L, Inc. All ights eserved 
 Spannerウォームアップ
 ウォームアップとはなにか


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

    事前にスプリットを確保しておくことで pannerで急激に流 入するトラフィックを捌けるようにする
 
 ローンチ前および負荷試験の前に必要
 

  5.          C L L, Inc. All ights eserved 
 スプリットとは
 出典:

    https://medium.com/google-cloud-jp/cloud-spanner-aruaru-quiz-6430fcf80a1 
 5
  6.          C L L, Inc. All ights eserved 
 • ローンチ時がもっとも負荷が高い


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

    • ノードを増減することで柔軟なスケールが可能
 • ノードを増やしてもデータが空ならストレージはコールド 状態
 • スプリットはテーブル、インデックスごとに作成される
 
 

  8.          C L L, Inc. All ights eserved 
 Spannerの特性
 •

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

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

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


    
 上記を繰り返すことによってウォームアップの精度を高め る
 ローンチの精度を高めることにも繋がる
 
 11
  12.          C L L, Inc. All ights eserved 
 • 実際にアプリを複数人でプレイしログを取得する


    • ログを模倣した動きをするbotを作成する
 • 想定同時接続数分のbotを起動し負荷をかける
 
 負荷試験する
 12
  13.          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
  14.          C L L, Inc. All ights eserved 
 • A

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


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

  17.          C L L, Inc. All ights eserved 
 ウォームアップツール
 自作のウォームアップツール(dankichi)


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


    
 
 18 dankichi warmer Spanner warmer warmer ノード数変更
 C sage取得
 insert
 od数調整

  19.          C L L, Inc. All ights eserved 
 ウォームアップツール
 19

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

  20.          C L L, Inc. All ights eserved 
 • ウォームアップによって

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