ビルドに非常に時間がかかっています

リビルドに10分ほどかかっています。以前は5分くらいだったと思います。大したことではありません。エラーメッセージはどういう意味ですか?元の投稿にあるものと似たようなメッセージが表示されます。

I, [2022-06-20T21:41:47.107238 #1]  INFO -- : cd /var/www/discourse && [ ! -d 'node_modules' ] || su discourse -c 'yarn install --production && yarn cache clean'
warning "eslint-config-discourse > eslint-plugin-lodash@7.1.0" has unmet peer dependency "lodash@>=4".
warning " > @mixer/parallel-prettier@2.0.1" has unmet peer dependency "prettier@^2.0.0".

さらに追加させていただきます。私は軽量なシステム(RAM 1GB)と小さなサイトを運用しています。ユニコーンワーカーが2つあり、それぞれがメモリの30%を消費していたため、メモリのスワッピングが多発していました。そのため、数を2から1に減らすことにしました(各ワーカーで約10の同時接続を処理できると考えています)。これにより、劇的な改善が見られ、ページの読み込みがほぼ瞬時になり、スワッピングが5〜10倍(読み込まれる内容によって異なる)減少しました。

現在、欠点として認識しているのは、ブラウザ経由でのDiscourseのアップグレードができなくなったことです。ブラウザからアップグレードしようとすると、以下のメッセージが表示されます。

ABORTING, you do not have enough unicorn workers running
Docker Manager: FAILED TO UPGRADE
#<RuntimeError: Not enough workers>

これは、Discourseチームが解決できるかどうか分からない点ですが、単一のユニコーンワーカーでのブラウザアップグレードについて、留意点として共有させていただきます。

「いいね!」 2

これはバグのように思われます。特に、システムがすぐに一時的にユニコーンを1つに減らすことを考えると。

数字の2はハードコーディングされており、削減のための数字の1も同様です。

編集:この変更によって不整合が生じたようです

あなたの投稿(およびこの返信)は、バグカテゴリの新しいスレッドで行うべきだと思います。

「いいね!」 4

これはどのように機能しますか?

アップグレードプロセスを処理するUnicornが1つあり、残りは継続的な呼び出しを処理しますか?

したがって、オンラインアップグレードを実行するには、最低2つのUnicornワーカーが必要になりますか?

これは間違いです。単一のユニコーンは一度に1つのリクエストしか処理できないため、小規模なグループには使用できますが、ほとんどのサイトには推奨しません。

「いいね!」 1

@Falco 他の管理者からのデータを確認しました。私の理解では、各ユニコーンは着信接続ごとに新しいプロセスをフォークします。そのため、技術的には一度に1つの接続ですが、各ユニコーンは複数の同時ユーザーを処理できます。

以下で共有されている経験に基づくと、約8頭のユニコーンが約400人の同時ユーザーを処理できるとのことです。

それに基づくと、各ユニコーンは約50人の同時ユーザーを処理できるようです。RAMとシステムリソースが、フォークできる数などに影響を与えることは承知しています。そのため、低スペックのシステム(1GB)では、ユニコーンワーカー1台あたり10人の同時ユーザーを処理できると仮定しました。

私の仮定と結論は完全に間違っていますか?もしそうなら、システムリソース(低スペックとして1GB、高スペックとして適切と思われるもの)に応じて、各ユニコーンが処理できる同時ユーザーの範囲はどのくらいでしょうか?

「いいね!」 1

セッションあたりの同時接続ユーザー数と同時接続数には違いがあります。セッションはオンラインユーザーであり、ユーザーが操作するたびにリクエスト(接続)を行います。

そうではありません。ユニコーンは起動時に指定された数のワーカープロセスにフォークします。

「いいね!」 1

そして、各ワーカープロセスは10個のスレッドを実行すると考えられます。