ゲームの開催がCOVIDの影響で scarce(不足)していたため、これを測定したり微調整したりする機会は非常に限られていました。
わかったことは、ハードウェアリソースが向上した(6+4 vCores および 16+8GB RAM)にもかかわらず、わずかに活発な利用者でも 429 エラー(クライアントのフリーズ)を引き起こす可能性があるということです。これは、チャットのために通常のゲーム視聴者の約 50% を集めた U20 ワールドカップの試合で確認されました。
測定と試行錯誤の結果、以下の調整に落ち着きました。
DISCOURSE_REJECT_MESSAGE_BUS_QUEUE_SECONDS: 0.4
DISCOURSE_MAX_REQS_PER_IP_PER_MINUTE: 400
DISCOURSE_MAX_REQS_PER_IP_PER_10_SECONDS: 100
これにより 429 エラーの 80% が解消され、大多数のユーザーにとって比較的スムーズな体験が可能になりました。
次のステップとしては、シングルスレッドの速度に特化した専用サーバーを利用するか、gazzillion vCores を提供する VPS プロバイダーに変更するなど、異なる種類のハードウェアリソースを導入することでした。しかし、私たちにとっては、@sam が以前示唆したように、Discourse ホスティングチームと連携することが次のステップとなります。
これらの調整が @iceman、@alec、あるいは他の誰かにも役立つことを願っています。CPU の使用率やキューイングには注意を払ってください。また、この経験から学んだことは、コンテナを 2 つ用意する方が 1 つよりも はるかに 優れているということです。調整をほぼダウンタイムなしで適用でき、ハードウェアリソースをより細かく活用できるからです。
リアルワールドのイベントに駆動されるテンポの速い議論のパフォーマンスや UX を向上させるための新しい調整や知見があれば、引き続き興味があります。