ユーザーテーマ選択の不具合とパフォーマンス問題の原因は?

こんにちは

まず、Discourse の素晴らしさに感謝します。bbPress プラグインからの移行後、大いに愛用しています(移行はスムーズではありましたが、それは別の話題として)。

私の Discourse サイトのユーザーの一人が、プロフィールから別のテーマを選択しようとした際に表示が壊れていることに気づきました(スクリーンショットを添付)。しかし、管理者側では正常に読み込まれていたため、この破れたテンプレートの状況は再現できませんでした。

しかし、興味深いことに、当コミュニティはトラフィックやユーザー数(投稿 49,000 件、ユーザー 7,300 人)がやや多いため、VPS(2GB RAM + 2GB スワップ、1 CPU)では処理しきれず、何らかのボトルネックが発生してサイトが非常に遅く読み込まれている(一部のページが 3〜10 秒かかり、スピナーが表示される)と考えていました。

以前は「Grey Amber」をデフォルトとして使用し、「Dark」と「Light」をユーザーが選択可能なテーマとしてデフォルトで設定していました。

そこで、ユーザー向けの「Dark」と「Light」テーマを無効にすると、サイトが突然軽快になり、Meta.discourse とほぼ同じ速度になりました! 現在、webpagetest.org や他のページテストサイトでは、驚異的なほど高速な計測結果が表示され、中には 1 秒未満のものさえあります。以前は非常に遅く読み込まれていた sidekiq、ログ、アップグレードなどのバックエンドページも、現在はほぼ瞬時に読み込まれます。まだ試していませんが、以前はフリーズしたりキャンセルされたり、エラーを発生させたりしていたアップグレードが、UI 経由で動作するようになるかもしれません。 OMG、なんと UI 経由でのアップグレードも今では動作します… 以前はターミナル経由で実行し、サイトを 20〜30 分ダウンさせる必要がありましたが、これで終わりかもしれません。

テーマを無効にしたり非アクティブにすることでパフォーマンスが向上するのは、一般的な動作なのでしょうか?私の推測ではそうではないと思いますが、アプリを数回再構築した後も、私が経験したことはこれです。

実行中:v2.4.0.beta1 +135 157(動作確認のために UI 経由でアップグレードを試みたところ成功しました。素晴らしいです)
S3 バックアップ
ヘッダーリンクテーマコンポーネント(追加前もサイトは遅かった)
discourse-oauth2-basic

DNS は Cloudflare ですが、すべての最適化/キャッシュや Brotli などを無効にしておくべきだと知っています。現在は非常に高速で、同じ Cloudflare 設定でも問題はありません。変更したのはテーマを無効にしただけです。

長くなってしまい申し訳ありませんが、誰かの参考やデバッグのためにできるだけ多くの情報を提供したかっただけです。

ユーザーがブラウザで Dark または Light を選択した際に表示される様子をスクリーンショットで撮影し、添付しました。

この場合、ブラウザのコンソールや /logs に何か表示されますか?Sidekiq と Logs の遅延は、おそらくテーマが原因ではないでしょう(grey amber は単なるカラーテーマに過ぎず、大きな変更はありません)。

ログをクリアし、ユーザーがテーマを選択できるよう再度有効化しました。自分のアカウントでプレビューしましたが、ブラウザのコンソールには何も表示されませんでした。

ログには以下が表示されましたが、おそらく無関係です:

TypeError: t.forEach is not a function
Url: https://wowlazymacros.com/assets/vendor-25f91d66eba869fbd399d751711e74544b6d60bf034a5350b61c6c12caad0e2a.js
Line: 3
Window Location: https://wowlazymacros.com/t/7-2-5-updated-fury-macros/3811

サーバーが画像処理などで過負荷状態になっていた可能性がありますが、現在は処理が完了していると思われます。

たしかにその通りかもしれません。CPU が一時的に 100% に達する処理があり、それが他の動作を遅らせているのかもしれません。面白いことに、それが数週間も偶然にもそのような挙動を示していたのに、設定を変更したとたんに驚くほどスムーズに動くようになったなんて(笑)。

また未解決の謎ですね :stuck_out_tongue_winking_eye:

あるいは、前回の再ビルド以降にいくつかのコミットで何かが修正されたのかもしれません。最も驚いたのは、ブラウザからアップグレードできるようになったことです。とても嬉しいです :+1: