- developersboost
- 987
- 0
- 0
- 0
A-2セッション『リアルタイム対戦バトルゲームを支えるリアルタイムサーバの負荷試験のリアル』叶若帆さん(gumi)です! #devboost #devboostA pic.twitter.com/WxtJG11UKb
2018-12-15 14:20:01まとめ: 負荷試験のためには適切な負荷クライアントが必要。サーバ内外のメトリクスを可視化し、改善のイテレーションを回す。 #devboost #devboostA
2018-12-15 14:10:59つづいてサーバに限界以上の負荷をかけたときのクラッシュを分析。セッションの同期呼び出しを非同期に改修したら秒間11万リクエストもさばけるように。 #devboost #devboostA
2018-12-15 14:10:16負荷試験の可視化に使うカウンタが秒間10万回更新され、ロックの取り合いになっていそう => プロセス内にキャッシュを導入して改善を図るもかえって性能低下。 #devboost #devboostA
2018-12-15 14:07:23秒間10万メッセージ、7200セッションをさばけることが分かったが、もっと性能が出るはず、という話になった。 #devboost #devboostA
2018-12-15 14:06:01以前やった試験では10万メッセージ/secだったところ、今回は2万/secまで落ちていた。プロファイリングの結果、デバッグ用関数に時間がかかっており、デバッグモードを off にしたら元と同じ性能が出た。これはやっちゃいそう…… #devboost #devboostA
2018-12-15 14:04:25Grafana ダッシュボードでサーバのメモリ、 RTT, メッセージ数、セッション数を可視化。まとめて確認できるようにすると、メトリクス同士の関係や影響もわかる。 #devboost #devboostA
2018-12-15 14:03:04負荷試験でかかる人為的な負荷と、実際の負荷とが同じ性質を持つことはどうやって担保するのだろう? ゲームロジックは持たないということなので、そこまで気にしなくてよいのかな。 #devboost #devboostA
2018-12-15 14:01:30負荷試験のインフラは AWS 上。外部の影響を排除できる。プロトコルが自前なので、負荷をかけるクライアントも自前でつくらないといけないが、社内にある既存のライブラリを利用。 #devboost #devboostA
2018-12-15 13:58:26通信サーバ Ark 経由でクライアント同士が位置や攻撃を通信。 Erlang で実装、シンプルな自前のプロトコルで、ゲームロジックは持たずに Pub/Sub のみ。 #devboost #devboostA
2018-12-15 13:53:58「リアルタイム対戦バトルゲームを支えるリアルタイムサーバの負荷試験のリアル」 event.shoeisha.jp/devboost/20181… #devboost #devboostA
2018-12-15 13:50:38