アップデート/再構築によるCPUスパイク

Amazon Lightsail インスタンスの単純な再起動で、これまでで最も奇妙な経験をしてしまいました。

  1. 再起動を実行し、再起動を待った。
  2. いくつかの(キャッシュされていないと推測される)ページで「502 Gateway Error - Nginx」というエラーメッセージ画面が表示された。少し待った…
  3. シェルから Discourse のビルドを実行した。
  4. ビルドに失敗したというエラーメッセージが表示された。
  5. ./discourse-doctor を使用したが、これも失敗した。
  6. 非公式プラグインを無効にして再ビルドしたが、これも失敗した。

もうダメだと思った。さらに調査を進めているうちに、再度フォーラムを確認すると、正常に動作していることがわかった。Discourse のドキュメントが即座に「WARNING! アプリが起動していない!」と警告していたことを考えると、これは全く理にかなっていない。:slight_smile:

私の仮説としては、これは他のことよりも Amazon のバースト可能な制限に関連しているのではないかということだ。再起動によってサーバーに負荷がかかり、それが一時的に 502 エラーを引き起こした可能性がある。しかし、ビルド実行時にサーバーのバースト制限の 70〜80% に達し、ビルドスクリプトを実行するためのシステムリソースが不足していたのかもしれない。

そこで最終的な質問だが(これは更新ビルドプロセスを悩ませている問題だ)、更新スクリプトのサーバーへの負荷を制限し、システムがパニックにならないようにする方法はあるか? 8GB の RAM を持つインスタンスなので、それほど弱くないはずだが…

ありがとう。ついでに、理由もなく Ativan を 2 錠飲んでしまった。:smiley:

ご説明だけでは判断が難しいですね。再ビルド時にどのようなエラーが発生していますか?

また近々別のアップデートを試して、ここで更新します。ログファイルを保存していなかったので、アップデートを実行するとバーストゾーンがかなり圧迫されてしまいます(特に3回実行した後)。バーストレベルを回復させるために、1日ほど待つ必要がありました。

これが原因のようです。

デフォルトのシード実行
*** アセットのバンドル中。しばらくお待ちください ***
$ RUBY_GC_MALLOC_LIMIT_MAX=20971520 RUBY_GC_OLDMALLOC_LIMIT_MAX=20971520 RUBY_GC_HEAP_GROWTH_MAX_SLOTS=50000 RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=0.9  bundle exec rake themes:update assets:precompile
Dark の更新中...
Dark の更新に失敗しました
about.json に無効な値が含まれています:最大 Discourse バージョンが無効です

さて、私のフォーラムが完全にダウンして500エラーが発生しています。:frowning:

なぜそんなことが起こるのでしょうか?更新処理は完了するまで現在の稼働中のフォーラムを置き換えるだけで、問題が発生しないと思っていたのですが?

元の件については存じ上げませんが、現在の問題はこれです:Failed to Bootstrap, due to discourse-alt-logo theme component

以下の手順で対応可能です。

 ./launcher start app

その後、問題のあるテーマコンポーネントを削除してください。

でも、ダークモードはシステムテーマのコンポーネントですよね?システムテーマのコンポーネントがそんな問題を引き起こすなんてあり得るのでしょうか。

ただ、ありがとう。何が起きているのかがわかったので、今なら問題を修正できると思います。

テーマコンポーネントは非推奨であり、Discourse はその使用を拒否します。

ただし、./launcher rebuild appを実行すると、新しいコンテナを構築するために既存のコンテナが停止します(同じデータベースファイルを使用するためです)。ビルドに失敗した場合、コンテナを再起動して再度実行状態にする必要があります。

はい、Dark ロゴとAlternate ロゴのコンポーネントを削除したところ、更新画面ですべての他の要素が正常に更新されていることに気づきました。