2. Mobage運用技術Web編
Mobage Webサーバ機の資源管理について
登壇者:DeNA樋口様
2-1. Mobageの佐波郡構成について
1. 基本、LAMP
2. WebサーバとDBサーバが大部分
3. Apache と FastCGI が同居
4. FastCGIはマルチプロセス型サーバ
5. ゲームごとに分離されているわけではない
- ゲーム間連携が簡単にできるメリットがある
6. オープンプラットフォームはアプリごとに独立している
2-2. Webサーバ機の資源消費について
- Webサーバ機は、CPUまたは、メモリがネック
- メモリ使用量が、1Gbyteを超えてしまう
2-2-1. FastCGIワーカ数の管理
- サーバ1台あたり 〜100プロセス程度
- CPUコア数の2,3倍は必要
- 1つのリクエストを処理する間の半分以上の時間はネットワークIO街などでsleepしているから
- ワーカーは、多いほど、耐障害性が高まる
- 多すぎるとメモリ不足になる
2-2-2. デバッガを使った状況モニタリング
1. 走っているプロセスにデバッガをアタッチし、アタックとレースをとり、すぐにデタッチ
2. 前プロセスのスタックトレースを一定周期で取得
3. httpdとFastCGIが対象
4. gdbを使っていたが、bulkdbgというものを作成し利用している
- デタッチしたあとにシンボル解決している
5. Mobageでは、約5秒おきにhttpdとFastCGIの前プロセスのスタックトレースを取得、ログ出力
6. 利用状況モニタリングと障害調査に利用
- オーバヘッドはほとんどなし
7. accept()でブロックしているワーカーの数が減ってきたら枯渇が近い
- メールで警告
8. ログを見れば分かる状態
2-2-3. 障害調査の手法
2-3. メモリ利用効率化
基本
- 独立したPerlモジュールにしている