$30 off During Our Annual Pro Sale. View Details »

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

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

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ウォームアップについて


    View Slide

  2.          C L L, Inc. All ights eserved 

    • 駒崎大輔

    • 2019年入社

    • サーバー基盤グループLCEチーム


    負荷試験


    社内ライブラリ開発/サポート


    自己紹介

    2

    View Slide

  3.          C L L, Inc. All ights eserved 

    Spannerウォームアップ

    ウォームアップとはなにか

    実際のウォームアップ方法



    3

    View Slide

  4.          C L L, Inc. All ights eserved 

    ウォームアップとはなにか

    4
    事前にスプリットを確保しておくことで pannerで急激に流
    入するトラフィックを捌けるようにする


    ローンチ前および負荷試験の前に必要


    View Slide

  5.          C L L, Inc. All ights eserved 

    スプリットとは

    出典: https://medium.com/google-cloud-jp/cloud-spanner-aruaru-quiz-6430fcf80a1

    5

    View Slide

  6.          C L L, Inc. All ights eserved 

    • ローンチ時がもっとも負荷が高い

    • ユーザーが大量に新規登録する

    • ユーザーテーブルのレコード数がとても多くなる

    • スプリットを大量に確保しておく必要あり

    ゲームリリース時の負荷

    6

    View Slide

  7.          C L L, Inc. All ights eserved 

    Spannerの特性

    7
    • ノードを増減することで柔軟なスケールが可能

    • ノードを増やしてもデータが空ならストレージはコールド
    状態

    • スプリットはテーブル、インデックスごとに作成される



    View Slide

  8.          C L L, Inc. All ights eserved 

    Spannerの特性

    • ノード数(処理ユニット)を増やしたあとに通常はテーブ
    ルのデータサイズおよび負荷によってスプリットが緩や
    かに発生していく

    • ゲームローンチ時の急激に負荷が高まるケースではス
    プリットが間に合わない


    →ウォームアップが必要

    8

    View Slide

  9.          C L L, Inc. All ights eserved 

    ウォームアップする

    • リリース時の負荷を想定し各テーブルをスプリットさせ
    る

    • 負荷はユーザー数×実際にアプリをプレイした際のリク
    エスト傾向によって見積もり


    公式にも実際に近しい負荷をかけることによってウォーム
    アップすることが必要だと書かれている


    
 9

    View Slide

  10.          C L L, Inc. All ights eserved 

    ウォームアップする

    • テーブルごとに想定負荷に近しいinsertを行う

    • 実際に負荷試験を行ってウォームアップの効果を検証
    する

    10

    View Slide

  11.          C L L, Inc. All ights eserved 

    ウォームアップする

    ウォームアップ→負荷試験→試験結果の確認→…


    上記を繰り返すことによってウォームアップの精度を高め
    る

    ローンチの精度を高めることにも繋がる


    11

    View Slide

  12.          C L L, Inc. All ights eserved 

    • 実際にアプリを複数人でプレイしログを取得する

    • ログを模倣した動きをするbotを作成する

    • 想定同時接続数分のbotを起動し負荷をかける


    負荷試験する

    12

    View Slide

  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

    View Slide

  14.          C L L, Inc. All ights eserved 

    • A Iのレイテンシ

    • 各クエリのレイテンシ

    • pannerのC 使用率

    • ホットスポットが発生していないか

    • スプリットが十分か

    試験結果の確認

    14

    View Slide

  15.          C L L, Inc. All ights eserved 

    Key isualizerによってホットスポットがないか確認をする


    試験結果の確認

    15

    View Slide

  16.          C L L, Inc. All ights eserved 

    試験結果の確認

    16

    View Slide

  17.          C L L, Inc. All ights eserved 

    ウォームアップツール

    自作のウォームアップツール(dankichi)


    • テーブルを指定するだけでinsertしていく

    • 各カラムの型にあわせた値を自動設定

    • Kに IDを自動生成したり、カラムによって実際に取
    りうる範囲の値のみ設定するなどカスタマイズ可能


    17

    View Slide

  18.          C L L, Inc. All ights eserved 

    ウォームアップツール

    イメージ図



    18
    dankichi
    warmer
    Spanner
    warmer
    warmer
    ノード数変更

    C sage取得

    insert

    od数調整


    View Slide

  19.          C L L, Inc. All ights eserved 

    ウォームアップツール

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


    View Slide

  20.          C L L, Inc. All ights eserved 

    • ウォームアップによって pannerの性能を引き出す

    • 負荷試験によってウォームアップの精度を高める

    • 安全なローンチが実現

    まとめ

    20

    View Slide

  21.          C L L, Inc. All ights eserved 

    どうもありがとうございました

    View Slide