エルダー・スクロールズ・オンライン goldroad

アップデート第33弾実施後の事後分析

今回は、アップデート第33弾の実施に伴った北米メガサーバーのパフォーマンス問題に関して、先週からどのような事象が発生しているのかをプレイヤーの皆さまにご説明したいと思います。

先ず、随分と昔のように感じますが、昨年私たちはESOの安定性とパフォーマンスを向上させる計画を発表し、それらを実装するにあたってアップデートの度に舞台裏で作業を実行することに尽力してきました。
このタスクの中で大きな項目の1つとして、単純なコンセプトである「データベースのシャーディング」が挙げられます。
これは、膨大なプレイヤーのデータベース(以下DB)を取得して「現在のキャラクター」と「古いキャラクター」の2つに分割し、プレイヤーがログインした際に全体的なDBに対して行われる処理要求の必要性を無くすことが目的です。
メガサーバーごとに1つ存在するキャラクターDBは時間の経過と共に増加し続け、約2年前にその規模がボトルネックとなるまでに拡大しました。
ログインプロセスにおける「キャラクターロードの要求」に必要以上の時間が掛かることがあった問題はこれに起因しています。

DBのシャーディングプロセスでは、過去1年間にログインしたすべてのアカウントにおけるキャラクターを「ライブ」DBに、それより古いものを「コールド」DBに分離します。
そして、すべての作業が完了した後は、アクティブなアカウントはログイン時により小規模なライブDBからキャラクターを引き出すようになるため、ログイン時間を大幅に短縮することができます。
古いキャラクターはログイン時にコールドDBから引き出されるため、ロードにある程度の時間を要しますが、その後はライブDBに移行されるため初回ログイン以降はより早くアクセスすることができるようになります。
このキャラクターDBの分離は、該当のメガサーバーでシャーディングが有効化された後のアカウントの初回ログイン時に機能します。
コピーが行われるため、初回ログインは通常より時間を要する場合がありますが、その後はすべてのログインがはるかに高速化されます。

現時点における朗報としては、この数か月間でほぼすべてのライブメガサーバーでこの計画が実行されており、すべてのコンソールメガサーバーは更新され、ログイン時間が大幅に短縮されています。

先日に実施されたアップデート第33弾に伴って発生した問題を理解するには、この背景情報を踏まえる必要があります。
特に北米メガサーバーにおけるPCキャラクターのDBは、コンソール版発売前の2014年にESOが大々的にリリースされた時からのアカウントに加えて、すべてのベータアカウント及びキャラクターデータも未だに健在であるため、コンソールに比べてその規模は非常に大きなものとなっています。

そのため、実際に北米メガサーバーでシャーディングを有効にするのは、先日のアップデート第33弾実施後の状況が落ち着くまで待つのが最善だと考えました。
そして、私たちは実施日にゲーム内の一般的な不具合と発生傾向にある問題を追跡し、その対応作業に取り掛かりましたが、そこでいくつかの確かな問題が浮上し、ゲーム内ロード画面のタイムアウト及びアクティビティ検索が機能していないという報告を発見しました。
私たちの最初の大きな過ちは、大型アップデートが実施されたにもかかわらず、これらの報告をサーバーの起動に関する一般的な問題であると判断したことです。その後、リアルタイムのモニタリングを強化した結果、アクティビティ検索及びその他のプロセスにおいて、過剰に機能した後に通常に戻るという「不穏な」挙動を検出しました。
待ち時間の問題を軽減するために、ゴールデンタイム内外の両方で調整を行いましたがこれが裏目となり、調整が機能していたのか、或いはサーバー上のゴールデンタイムの人数が減少したのかを特定するのが困難になりました。
私たちはアクティビティ検索の問題は保留とし、北米メガサーバーのDBシャーディングの有効化を進めることにしましたが、これが2つ目の大きな過ちでした。

そして、北米メガサーバーのプレイヤーの皆さまは、DBシャーディングが有効になった途端に何が起きたのかご存知のことかと思います。
ゴールドタイムの間はサーバー全体で更なる遅延が発生し、DBプロセスがバックアップされることによってプロセス間のすべての転送(ゾーニングなど)もさらに遅くなり、キャラクターのDB記録が更新されるログアウト時及びキャラクターの記録にアクセスするアクティビティ検索でゲームが完全に行き詰まって本質的に機能しないという事態へと発展してしまいました。

DBシャーディングシステムは通常のサーバーパフォーマンスにおけるガイドラインの範囲内で機能するよう計算及び設計されていたため、遅延の問題を解決する手始めとして、私たちは必然的に計算上の間違いを疑い、そこから着手しました。
先日のダウンタイムを伴ったいくつかの変更を施しましたが、それでも月曜日の夜のパフォーマンスは酷く、これも全く機能しませんでした。
また、これらの問題がサーバーに中程度の負荷が掛かっている時にのみ頻発するという状況が更なる追い打ちとなり、ライブサーバーのゴールデンタイム以外で改善作業を行うことができなくなってしまいました。
しかし、それでも月曜日の夜に遅延が発生したため、この時点で別の要因があることが判明しました。

火曜日、問題がDBシャーディングに全く関係ないことを理解した私たちは、ボトルネックがどこにあるのかを突き止めるべく確認できるログをすべて調査した結果、ようやく原因を特定することができました。
この問題は、構成された処理能力が処理できなかった(または処理に失敗した)ネットワークポートの不良が原因となっていました。実際にメガサーバー全体を遅延させていたのはソフトウェアではなく、ハードウェアの問題だったのです。
同日のメンテナンスにて、そのデバイスをシステムから取り除き、代価品で再構成を行ったところ、すべてが正常に戻り、舞台裏でプレイヤーの皆さまに影響を及ぼすことなく、DBシャーディングも意図した通りに実行することができました。

もちろん、これは問題が解決されたことを保証するものではありませんが、この問題の根源に到達したと私たちは確信しています。
要約すると、原因はアップデート第33弾、アカウント共通の実績、またはDBシャーディングに全く関係していなかったものの、すべてが同時期に発生したため、誤った手がかりを見つけてしまった影響で原因特定に多大な時間を要したということです。

PC版プレイヤーの皆さまに良いゲーム体験を提供することができず、本来可能であったゲームプレイや探検家の祝典を利用することができなかったために、時間や進捗を失ってしまった恐れがあることを私たちは承知しています。
そのため、お詫びとしてESOの全プレイヤーの皆さまに、4月のカレンダーを通して1日目のデイリーログイン報酬に経験値が150%増加する経験値の巻物を5個配布し、4月第4週目におけるウィークリーのエンデバーシールを3倍に増加します。

また4月には、道化師祭りや記念祭などのイベントが開催されるほか、まだ紹介していないお楽しみもご用意しています。
皆さまがこの経験値の巻物を100%経験値ボーナスのイベントで活用し、ゲームが正常に稼働していた場合に得られた本来の進捗を取り戻せることを祈っています。

皆さまには多大なご迷惑をお掛けしたため、全てを開示する必要性があると判断しこの長い説明を記載しました。
最後までご一読いただきありがとうございました。


最新ニュース