|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
【運用資料】 ホワイトアウト現象対策について |
|
2011.08.10 作成:Owata |
|
|
|
|
|
詳しい情報が不要な場合、下記URLの簡易版をご覧下さい。 |
|
|
http://netsma.web.fc2.com/whiteout-1.htm |
|
|
|
|
|
|
1.ホワイトアウト現象とは |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
サーバへログイン時、自分より前からサーバへログインしているプレイヤー及びゲーム部屋が見えない現象を指す。 |
|
|
|
|
|
別名:ぼっち現象 |
|
|
|
|
|
全ての "Kaillera"
サーバで発生報告がある。 →サーバの体系については後述 |
|
|
|
|
|
|
|
|
|
|
|
しかし、"EmuLinker"
サーバでは発生報告が無い。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
似たような現象(サーバメッセージすら表示されない)もあるが、その現象とホワイトアウトは別事象である。 |
|
|
|
|
今後大人数でのサーバ利用を行っていくに辺り非常に大きな問題の一つである。 |
|
|
|
|
|
|
|
|
2.発生が確認されているサーバとサーバ運用体系 |
|
|
|
|
|
|
|
|
ホワイトアウト発生が確認されているサーバ及びサーバ運用体系を下記に示す。 |
|
|
|
※名称一覧(バージョンは最新の物を利用) |
|
|
|
Default = kaillerasrv
(Christophe Thibault) |
|
ELKSF = Emulinker SF |
|
|
KSS = Kaillera Server
Starter (KS利用) |
|
AC = Admin Client (ELK準拠) |
|
|
KAC = Kaillera Admin
Client |
|
UOK = Unoffical Kaillera
Server |
|
|
ELK = EmuLinker |
|
|
|
|
サーバ運用体系 |
該当サーバ |
発生 |
備考 |
|
|
Default |
183鯖、精神と時の部屋、forever鯖 |
有 |
|
|
|
KSS |
aok鯖、Owata鯖 |
有 |
ホワイトアウト時は再起動が発生。 |
|
|
KSS + KAC |
ムキ鯖 |
有 |
KSSに同じ。 |
|
|
UOK |
cross[27]鯖 |
有 |
183鯖にて確認。cross鯖にて試運転中。 |
|
|
ELK |
Owata[37]鯖 |
無 |
|
|
|
ELKSF |
|
無 |
100名正常入室を確認。 |
|
|
ELKSF + AC |
cross[37]鯖 |
無 |
|
|
|
|
|
|
3.ホワイトアウト発生の原因 |
|
|
|
|
結論から、現段階で明確な原因は不明(現在も切り分け中)。 |
|
|
断定して言える事は、『ホワイトアウトは一定人数を超える事により発生する』。 |
|
|
一定人数は様々な要素を踏まえた上で常に変動している事が判明。 |
|
|
|
|
◯考えられる原因と試行した対策 |
|
|
|
1) |
サーバのスペックに依存するのではないか |
|
|
スペックを抑えた仮想マシンを利用したところ、事象変わらず。 |
|
|
メモリを1GB増設、CPUをCore 2 DuoからCore i7
2600kに変更するも変化無し。 |
|
|
|
2) |
サーバのNICの性能に影響するのではないか |
|
|
ホワイトアウト発生時より大きな負荷をかけた性能試験(TCP/UDP)に成功。 |
|
|
NICの性能差とは微々たるものなので可能性は低い。 |
|
|
|
3) |
ルータの性能に依存するのではないか |
|
|
ルータをONU共存のNTTリースPR-200NEから市販のBUFFALOルータに変更するも変化無し。 |
|
|
ルータの性能限界の場合、ホワイトアウト発生以前に接続が行えないのでこの可能性も低い。 |
|
|
|
4) |
ルータの各種設定に原因があるのではないか |
|
|
|
・UDP同時接続数を10から30に変更 → 症状変わらず |
|
|
|
・RWINを65535から242140に変更 → 症状変わらず |
|
|
|
・MTUを1443→1463に変更 → 症状変わらず |
|
|
|
・NATの転送ポートの範囲設定を広げる(TCP/UDP) → 症状変わらず |
|
|
|
5) |
新カイレラのバグではないか |
|
|
下記のカイレラクライアント全てにおいて発生を確認した。 |
|
|
|
・旧カイレラ (kaillera client v0.9c) |
|
|
・新カイレラ(Open Kaillera VS 20111115) |
|
|
・Superカイレラクライアント(Super
Kaillera Client) |
|
|
・Open Kailleraの全てのバージョン |
|
|
|
上記の事から、カイレラクライアントに原因がある可能性は低い。 |
|
|
|
※旧カイレラを利用すると症状が緩和されるという話について |
|
|
旧カイレラを利用するとホワイトアウトが発生しないと思っていましたが、色々と検証した結果 |
|
|
ホワイトアウト発生時に旧カイレラでログインしようとすると「Connected.
Loggin In...」という |
|
|
メッセージを表示した状態で止まり、ログインはできない事が判明。 |
|
|
しかしサーバ側ではユーザがログインできたと認識されており、ゴーストとして2分間残り続ける。 |
|
|
新カイレラではユーザログインの仕様が変わっており、無理矢理(?)ログインできるようになっている。 |
|
|
以上の事から、「ホワイトアウトは新/旧問わず発生する」という事になります。 |
|
|
|
6) |
クライアント側の回線の性能に依存するのではないか |
|
|
一定人数を超えた同じ条件下で、発生する人としない人がいたケースが報告されている。 |
|
|
可能性としては、サーバログイン後の一定時間内にゲーム部屋一覧及びユーザ一覧の |
|
|
UDPパケットを全て取得できる程の性能が足りない、もしくはPingの影響を受けている可能性がある。 |
|
|
このケースは検証が難しい(様々な要素を含む為)。 |
|
|
|
7) |
サーバプログラムに原因があるのではないか |
|
|
海外フォーラムなどを見ると、この問題は過去(2002年)から存在するらしく、結果的に解決していない。 |
|
|
Emulinkerサーバでは発生しない為、Kailleraサーバの仕様に原因がある可能性が高いと見ている。 |
|
|
Kailleraサーバはソースが公開されていない為、詳細は確認できない。 |
|
|
|
8) |
回線の性能に依存するのではないか |
|
|
大人数でのプレイ時は大量にUDPパケットの送受信が行われている。 |
|
|
それらを全て処理する為の性能不足も考えられる。 |
|
|
|
|
4.発生についての考察 |
|
|
|
Kailleraサーバではユーザリスト及びゲームリストをUDPパケットで転送している。 |
|
|
パケットはユーザログイン時にクライアント側へ送信されるが、ユーザリスト及びゲームリストどちらも同じタイミングで処理されている。 |
|
ここがEmulinkerサーバと違う仕様で、Emulinkerサーバはユーザリスト及びゲーム部屋をループで回して取得している。 |
|
|
この仕様の違いに何かヒントがあるのではないかと考えている。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
クライアント |
|
サーバ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UDP |
|
|
|
|
|
|
Kaillera Server |
|
|
|
|
|
|
|
|
|
ホワイトアウト発生 |
|
|
|
|
|
|
|
|
全て正常に受け渡しできていない為 |
|
|
|
|
|
|
|
自分しか表示されない |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
↓ループで展開 |
|
|
|
|
|
|
|
|
UDP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Emulinker Server |
|
|
|
|
|
|
|
ホワイトアウト未発生 |
|
|
|
|
|
|
|
個別に取得? |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5.今後の活動 |
|
|
|
・ホワイトアウト発生時のサーバのステータスを詳しく分析する。 |
|
|
・回線の相性、性能について詳しく調べてみる。 |
|
|
・OSを変えてサーバを運用してみる(LINUX、仮想マシン等) |
|
|
・特定の負荷をかけた実験を行い、原因を特定する |
|
|
|
|
6.プレイヤーの方々へのお願い |
|
|
|
・ホワイトアウト発生時はゲーム部屋を作成してから退室する(一瞬作成するだけで構わない)。 |
|
|
・ホワイトアウト発生時は入退室を何度も繰り返さない(一定時間を空けて再接続する)。 |
|
|
・ホワイトアウト発生中でもプレイしたい場合、後から入って来た人にゲーム部屋を作って貰う事で普通にプレイ可能。 |
|
|
・発生報告、疑問点などを頂けると嬉しいです。 |
|
|
|
|
|
以上、現時点で分かる範囲をこの資料として発表します。 |
|
|
興味のある方はご連絡頂けると嬉しいです。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|