サーバーとクライアントの両方で、これらのパフォーマンスの問題を通じて私たちに固執してきたすべての人に感謝します。私たちは過去2日間、それらを解決するために24時間歩き回ってきましたが、私たちは素晴らしい進歩を遂げてきました。
このアップデートでは、サーバーのパフォーマンスに焦点を合わせたいと思います。今日、私たちがついにいくつかの主要な問題に対処したので、今日は劇的にサーバーのパフォーマンスが向上していることに気付くはずです。まだクライアントのパフォーマンスの問題(フレームレートの悪い、メモリリークなど)がありますが、私たちはそこで大きな進歩を遂げており、今日もそれらの修正を展開できることを願っています。
今朝私たちが特定して修正した4つの主要なサーバーパフォーマンスの問題を通してあなたをすべて連れて行きたいと思います。そうすれば、地球上で何が起こっているのか、そしてなぜサーバーのパフォーマンスがあり、率直に言って、EAのリリース前にこれらの問題をキャッチしなかったのかを理解できます。
ゲームが公開されたとき、すぐにバットから出たとき、サーバーは、「1回限りの」または「リモート」クエリと呼ばれるものを評価して、毎秒または数億行あたり数億行をスキャンしていることがわかりました。リモートクエリはデータを購読するのではなく、データを1回だけ引き下げます。プレイヤーがTrade FinderウィンドウまたはWaystoneウィンドウのいずれかを開いたときに実行していた2つの特定のクエリの最適化が欠落していることがわかりました。これを悪化させたデモとEAの間に2つの変更が発生しました。まず、各地域のエンティティの数が2倍に増加し、2番目に、Trade Finderウィンドウをチュートリアルに追加しました。内部テストボットはUIを開いたり、チュートリアルを完成させたりしないため、テストではこれを見ませんでした。この改善されたパフォーマンスを修正しましたが、問題を実質的に修正しませんでした。
私たち(およびあなた)が気づいた次の主要な問題は、サーバー上の膨大な1分間の凍結でした。ひどい。最終的には、「Mobモニター」が実行されている場合にのみこれが起こると判断しました。暴徒モニターは、世界のすべての生き物の「脳」です。それはAIディレクターです。ログを確認しながら、ある時点で、MOBモニターがクラッシュし、再起動がフリーズに対応することがわかりました。 Mobモニターのクラッシュを修正し、凍結がなくなりました。
フリーズを修正した後、サーバーではパフォーマンスがまだ大きくないことがわかりました。プレイヤーはかなりの遅れを報告していましたが、さらに悪いことに、彼らはサーバーから切断されているか、接続に問題があると報告していました。さらに、各地域サーバーが「地域8病」と呼ばれるものを取得し始めます。リージョン8疾患の最初の症状は、サーバー上の追加の作業負荷が明らかになっていないにもかかわらず、還元剤の実行時間の上昇でした。その後、多くのクライアントが切断され、実行時間がさらに悪化し、非常に悪くなりました。唯一の解決策は、サーバーを再起動することでした。これにより、問題は一時的に解決されます。クライアントは、問題を引き起こし、問題によって引き起こされると思われました。
フリーズは、モニターがすべてのデータを再登録することによって何らかの形で引き起こされると想定していましたが、タイムスタンプのいくつかの実験と慎重なレビューの後、MOBモニターが切断されたときにフリーズの問題が実際に発生していることがわかりました。最終的に、クライアントが切断されているとき、私たちは彼らにメッセージを配信できないという膨大な数のログを印刷することを理解しました。ログの数はメッセージの量に比例していたため、ゲーム内のプレーヤーが多ければ多いほど、印刷するログが増えます。これらのログは還元剤コードパスにはありませんでしたが、stdoutのロックを保持して、還元剤コードパスに少量のロギングを引き起こしてロックを待っているため、削減の実行時間が急増します(より多くの切断を引き起こし、より多くの伐採を引き起こしました。
最後に、私たちは一連の悲劇に到達し、パフォーマンスの影響が最も大きくなりました。リリースの最後の日には、起動するのと同じ物理マシンでボットテストを実行しました。最新のコードバージョンを実行したとき、実際にフリーズが起こっているのを見ました。バージョンをロールバックしたとき、フリーズを見たり、頻繁に見たりすることはありませんでしたが、これは単にランダムなチャンスによるものだと考えています。したがって、私たちは悲劇的に早期アクセスを伴う古いバージョンを出荷することにしました。
これが非常に悲劇的だった理由は、最新バージョンでは、ボットが行っていない運用のパフォーマンスを改善するためにいくつかのクエリエンジン最適化を行ったためですが、実際のプレーヤーはしました(たとえば、多くのクラフト)。
昨夜、凍結と病気のより深い理解を考えると、私たちは最新バージョンを展開することを選択しました。サーバー側のパフォーマンスに劇的な改善が見られました。
あなたがこれを読んでいて、昨日サーバーのパフォーマンスに失望した場合、私はあなたが今、あなたが今別のショットを与えてください、または私たちがクライアント側のパフォーマンスとバグを修正した後、あなたはあなたが別のショットを与えてくださいとお願いします。すべてが解決されるわけではありませんが、物事はずっと良くなります。これが、何がうまくいかなかったか、そして問題が発生したときに何をしているのかについてのより良い洞察を提供することを願っています。
🧠 編集部の感想:
Bitcraftのサーバーパフォーマンスの改善に向けたアップデートは、開発チームの努力が感じられます。最初の不具合が多かった中で、特にフリーズ問題の解消はプレイヤーにとって大きな進展。今後のクライアント側の改善にも期待したいです。
Views: 0