※資料内の参照リンクを選択し閲覧する場合は、ダウンロードをお願いいたします
\積極的に技術発信を行なっております/ ▽ Twitter/COLOPL_Tech https://twitter.com/colopl_tech
▽ connpassページ http://colopl.connpass.com
▽ COLOPL Tech Blog http://blog.colopl.dev
C L L, Inc. All ights eserved pannerウォームアップについて
View Slide
C L L, Inc. All ights eserved • 駒崎大輔 • 2019年入社 • サーバー基盤グループLCEチーム –負荷試験 –社内ライブラリ開発/サポート 自己紹介 2
C L L, Inc. All ights eserved Spannerウォームアップ ウォームアップとはなにか 実際のウォームアップ方法 3
C L L, Inc. All ights eserved ウォームアップとはなにか 4事前にスプリットを確保しておくことで pannerで急激に流入するトラフィックを捌けるようにする ローンチ前および負荷試験の前に必要
C L L, Inc. All ights eserved スプリットとは 出典: https://medium.com/google-cloud-jp/cloud-spanner-aruaru-quiz-6430fcf80a1 5
C L L, Inc. All ights eserved • ローンチ時がもっとも負荷が高い • ユーザーが大量に新規登録する • ユーザーテーブルのレコード数がとても多くなる • スプリットを大量に確保しておく必要あり ゲームリリース時の負荷 6
C L L, Inc. All ights eserved Spannerの特性 7• ノードを増減することで柔軟なスケールが可能 • ノードを増やしてもデータが空ならストレージはコールド状態 • スプリットはテーブル、インデックスごとに作成される
C L L, Inc. All ights eserved Spannerの特性 • ノード数(処理ユニット)を増やしたあとに通常はテーブルのデータサイズおよび負荷によってスプリットが緩やかに発生していく • ゲームローンチ時の急激に負荷が高まるケースではスプリットが間に合わない →ウォームアップが必要 8
C L L, Inc. All ights eserved ウォームアップする • リリース時の負荷を想定し各テーブルをスプリットさせる • 負荷はユーザー数×実際にアプリをプレイした際のリクエスト傾向によって見積もり 公式にも実際に近しい負荷をかけることによってウォームアップすることが必要だと書かれている 9
C L L, Inc. All ights eserved ウォームアップする • テーブルごとに想定負荷に近しいinsertを行う • 実際に負荷試験を行ってウォームアップの効果を検証する 10
C L L, Inc. All ights eserved ウォームアップする ウォームアップ→負荷試験→試験結果の確認→… 上記を繰り返すことによってウォームアップの精度を高める ローンチの精度を高めることにも繋がる 11
C L L, Inc. All ights eserved • 実際にアプリを複数人でプレイしログを取得する • ログを模倣した動きをするbotを作成する • 想定同時接続数分のbotを起動し負荷をかける 負荷試験する 12
C L L, Inc. All ights eserved 負荷試験する 13bot(Pod)parallelism: 5 completions: 5 ser: 1000 bot(Pod)bot(Pod)bot(Pod)bot(Pod)bot(User)bot(User)APIEndpoint1000並列 Job
C L L, Inc. All ights eserved • A Iのレイテンシ • 各クエリのレイテンシ • pannerのC 使用率 • ホットスポットが発生していないか • スプリットが十分か 試験結果の確認 14
C L L, Inc. All ights eserved Key isualizerによってホットスポットがないか確認をする 試験結果の確認 15
C L L, Inc. All ights eserved 試験結果の確認 16
C L L, Inc. All ights eserved ウォームアップツール 自作のウォームアップツール(dankichi) • テーブルを指定するだけでinsertしていく • 各カラムの型にあわせた値を自動設定 • Kに IDを自動生成したり、カラムによって実際に取りうる範囲の値のみ設定するなどカスタマイズ可能 17
C L L, Inc. All ights eserved ウォームアップツール イメージ図 18dankichiwarmerSpannerwarmerwarmerノード数変更 C sage取得 insert od数調整
C L L, Inc. All ights eserved ウォームアップツール 19定期的に pannerのエンジニアの方と &Aやフィードバックを行い、ウォームアップ方法や負荷試験方法を改善していっています。
C L L, Inc. All ights eserved • ウォームアップによって pannerの性能を引き出す • 負荷試験によってウォームアップの精度を高める • 安全なローンチが実現 まとめ 20
C L L, Inc. All ights eserved どうもありがとうございました