WEB+DB PRESS plus シリーズ本(オンラインゲーム・サーバ/インフラを支える技術)
オンラインゲームを支える技術 ??壮大なプレイ空間の舞台裏 (WEB+DB PRESS plus)
- 作者: 中嶋謙互
- 出版社/メーカー: 技術評論社
- 発売日: 2011/03/24
- メディア: 単行本(ソフトカバー)
- 購入: 33人 クリック: 1,696回
- この商品を含むブログ (57件) を見る
- Javaでは、CPU-intensiveな処理の場合はJIT(Just In Timeコンパイラ)の実行によりC/C++よりも速くなる場合があるが、OSとのインタラクションが多い場合はシステムコール呼び出し時のチェックによるオーバーヘッドがあり、C/C++より10倍遅くなる場合もある。C/C++はGCがなく実装にコストがかかるし、Javaはこの理由に使えない、そこでGolangへの期待が高まる。
- Non-Blocking I/Oを汎用的に扱いたい(システムコールなどの低レイヤのAPIにおけるOSの違いをライブラリで吸収したい)場合はlibeventを使えばよい。libeventのインターフェースは、データ受信時のコールバック関数を登録するかたち。boost::asioというのもある。
- シリアライズフォーマット(Protocol Buffer、MessagePack)やRPC(gRPCなど)の選択も重要になってくる
UDPパケットをP2PでやりとりするためのNATトラバーサルについては、シンメトリックNAT(毎回ポート番号が変わる)が使われている場合に対応できないので、今後はスケールアップによるクライアント/サーバ型が増えるだろう。
以下の資料も併せて押さえておきたい(レイテンシ耐性のある設計)
オンラインゲームの仕組みと工夫 from Yuta Imai
www.slideshare.net
[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)
- 作者: 安井真伸,横川和哉,ひろせまさあき,伊藤直也,田中慎司,勝見祐己
- 出版社/メーカー: 技術評論社
- 発売日: 2008/08/07
- メディア: 単行本(ソフトカバー)
- 購入: 133人 クリック: 2,270回
- この商品を含むブログ (289件) を見る
- おおよそ自分でも押さえられている内容だということが認識できて良かった
- Apacheの動作モデル(MPM prefork/worker)の話はしっかり認識しておきたい
N回リクエストを処理した子プロセスを親プロセスが殺して再forkするような実装もある。 これにより、定期的にプロセスが死んでメモリが開放されて、CoWによるメモリ共有率が比較的高いプロセスしか残らないようになり、メモリ使用量を削減できる。
- ストレージレイヤでの冗長化(&マルチサーバ化)については、以下の記事も併せて押さえておきたい