トラフィックがないのにメモリ使用量が高い?

既存のフォーラムの候補先としてDiscourseをテストしており、要件を把握しようとしています。

現在、Digitaloceanノードで4vCPUと8GB RAMのDiscourseドロップレットを実行しています。
インポートしたvBulletinサイトをトラフィックやアクティビティなしでここで実行すると、システムはまずその8GB RAMの約75%を使用し始め、数日かけて100%に達すると完全に応答しなくなります。

これは、最小要件がこれよりもはるかに少ないように見えるため、混乱しています。
(コンテナを再構築し、Sidekiqタスクを確認してクリアしましたが、使用率は依然として高いままです)

フォーラムを稼働させるために、モンスター級のRAMセットアップを検討すべきでしょうか、それとも何かヒントはありますか?

インポートされた投稿は何件ですか?

システムは投稿を再ベイクしたり、画像をリサイズしたりしている可能性があり、ユーザーがいなくても大量のリソースを使用する可能性があります。/sidekiq を確認して、多数のジョブがキューに入っているか、実行されているかを確認できます。また、htop は実行中のプロセスについてヒントを与える可能性があります。

「いいね!」 3

約24万件の投稿があります。

インポートは約5週間前に行われ、それ以来5回のアプリ再構築を経験しました。コンテナが100%のメモリ応答不能状態になった場合に、これがメモリの問題を解決するようです。

言及されているように、サイドキックのすべてのタスクをクリアしましたが、使用率は75%のままです。

昨日サーバーを再構築してからのメモリグラフ:

RAM:8GB

CPU

トラフィック

サイドキック

私から見ると、これは数日かけてゆっくりとメモリリークを起こして死んでいくように見えます。(これまでは観察された動作です。)

「いいね!」 1

インポート後、データベースのパフォーマンス向上のために、バックアップを作成し、同じインスタンスに復元することを常にお勧めします。

そのメモリグラフはキャッシュを含んでいますか、それとも除外していますか?(つまり、free -m の出力はどのようになりますか?)

プラグインはありますか?

「いいね!」 1

## プラグインはここに配置します
## 詳細については、https://meta.discourse.org/t/19157 を参照してください
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-cakeday.git
          - git clone https://github.com/discourse/discourse-spoiler-alert.git
          - git clone https://github.com/discourse/discourse-user-card-badges.git
          - git clone https://github.com/discourse/discourse-adplugin.git

良いアイデアですね。試してみます。

サイトが応答しなくなりました。(バックアップを取得し、バックアップを復元してから再起動しました)

RAM使用量が6GBから7GBに増加し、サイトが応答しません。

Redis がほぼ 5GB を使用しているため、Discourse が利用できる容量がほとんどなくなります。特に、ユニコーンをいくつ実行しているかを考慮すると、これは顕著です。

Sidekiq キューがクリーンな場合は、インポートからのゴミが Redis に溜まっている可能性があるため、Redis をクリーンアップしてみてください。

./launcher enter app
redis-cli flushall
「いいね!」 1

了解しました。redis コマンドを試してみます。

ユニコーンワーカーの問題は、かなり早い段階で確認したものです。db_shared_buffers の RAM 使用量とユニコーンワーカーを 3 に設定の両方を変更しました。

ユニコーンワーカーの設定は、実際に実行されるワーカーの数にほとんど、あるいはまったく影響しないようです。

app.yml ファイルから

  ## 同時に処理できる Web リクエストの数はいくつですか?メモリと CPU コアに依存します。
  ## ブートストラップによって検出された CPU に基づいて自動的に設定されます。または、オーバーライドすることもできます。
  UNICORN_WORKERS: 3

flushall コマンドは驚くほど効果がありました。使用量が 2GB まで減りました。これで維持できるか見てみましょう。

以前は、データがどんどん増え続けていたのが心配でした。これでアプリがよりうまく自己管理できるようになることを願っています。

ところで…インポートはデータを永続的に Redis に保存するのですか?少し奇妙に思えますが、Redis の仕組みについては全く分からないので。

大変助かりました。

「いいね!」 2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.