デブスト【A-2】リアルタイム対戦バトルゲームを支えるリアルタイムサーバの負荷試験のリアル #devboostA

0
【Developers CAREER Boost 2023】12/9(土)オンライン開催!✨ @developersboost

A-2セッション『リアルタイム対戦バトルゲームを支えるリアルタイムサーバの負荷試験のリアル』叶若帆さん(gumi)です! #devboost #devboostA pic.twitter.com/WxtJG11UKb

2018-12-15 14:20:01
拡大
そば太郎 @_sobataro

まとめ: 負荷試験のためには適切な負荷クライアントが必要。サーバ内外のメトリクスを可視化し、改善のイテレーションを回す。 #devboost #devboostA

2018-12-15 14:10:59
Shoko@育休中 @_okohs

負荷試験用のツールを作り込むの大事やな。覚えておこう #devboostA

2018-12-15 14:10:32
そば太郎 @_sobataro

つづいてサーバに限界以上の負荷をかけたときのクラッシュを分析。セッションの同期呼び出しを非同期に改修したら秒間11万リクエストもさばけるように。 #devboost #devboostA

2018-12-15 14:10:16
そば太郎 @_sobataro

負荷試験の可視化に使うカウンタが秒間10万回更新され、ロックの取り合いになっていそう => プロセス内にキャッシュを導入して改善を図るもかえって性能低下。 #devboost #devboostA

2018-12-15 14:07:23
そば太郎 @_sobataro

秒間10万メッセージ、7200セッションをさばけることが分かったが、もっと性能が出るはず、という話になった。 #devboost #devboostA

2018-12-15 14:06:01
Shoko@育休中 @_okohs

プレゼンの構成がゲームっぽいのが流石 #devboostA

2018-12-15 14:05:10
大和 @0vccWIHNou

変遷とかがわかりやすくて現場のライブ感がすごい伝わってくる #devboostA

2018-12-15 14:05:10
そば太郎 @_sobataro

以前やった試験では10万メッセージ/secだったところ、今回は2万/secまで落ちていた。プロファイリングの結果、デバッグ用関数に時間がかかっており、デバッグモードを off にしたら元と同じ性能が出た。これはやっちゃいそう…… #devboost #devboostA

2018-12-15 14:04:25
そば太郎 @_sobataro

Grafana ダッシュボードでサーバのメモリ、 RTT, メッセージ数、セッション数を可視化。まとめて確認できるようにすると、メトリクス同士の関係や影響もわかる。 #devboost #devboostA

2018-12-15 14:03:04
そば太郎 @_sobataro

負荷試験でかかる人為的な負荷と、実際の負荷とが同じ性質を持つことはどうやって担保するのだろう? ゲームロジックは持たないということなので、そこまで気にしなくてよいのかな。 #devboost #devboostA

2018-12-15 14:01:30
そば太郎 @_sobataro

サーバは Ark なので、負荷クライアントの名前は Flood にした。おもしろい #devboost #devboostA

2018-12-15 13:59:39
そば太郎 @_sobataro

負荷試験のインフラは AWS 上。外部の影響を排除できる。プロトコルが自前なので、負荷をかけるクライアントも自前でつくらないといけないが、社内にある既存のライブラリを利用。 #devboost #devboostA

2018-12-15 13:58:26
そば太郎 @_sobataro

ここからは本題。負荷試験の必要性、負荷クライアント、負荷試験の試行錯誤について。 #devboost #devboostA

2018-12-15 13:56:13
そば太郎 @_sobataro

通信サーバ Ark 経由でクライアント同士が位置や攻撃を通信。 Erlang で実装、シンプルな自前のプロトコルで、ゲームロジックは持たずに Pub/Sub のみ。 #devboost #devboostA

2018-12-15 13:53:58
Shoko@育休中 @_okohs

リアルタイムサーバArkの話。Erlangで実装 #devboostA

2018-12-15 13:52:59
そば太郎 @_sobataro

「リアルタイム対戦バトルゲームを支えるリアルタイムサーバの負荷試験のリアル」 event.shoeisha.jp/devboost/20181… #devboost #devboostA

2018-12-15 13:50:38