これは少し頭を悩ませる問題ですね 
新サーバーに新しく移行した Discourse インスタンスがあります。
ログで以下のエラーが発生しています: PG::DiskFull (ERROR: could not resize shared memory segment \"/PostgreSQL.1759815625\" to 8388608 bytes: No space left on device )
これは奇妙です。なぜなら、以前のサーバー(RAM 64GB)ではこの問題はなく、以下の設定を使用していました:
db_shared_buffers: "25632MB"
db_work_mem: "160MB"
新しいサーバー(RAM 128GB)では、デフォルト値以上に増やすことができません(以下の値を3倍にしても、同じ PG DiskFull エラーが発生します):
db_shared_buffers: "128MB"
db_work_mem: "40MB"
以前のマシンには Docker 27.x がインストールされていました(Discourse インストーラーによって自動インストールされました)。新しいマシンには、指示に従って docker.io をインストールしました(そのため 26.x です)。関連性があるか確認するために Docker 27.x に切り替えてみましたが、何も変わりませんでした。どちらも Stable Discourse ブランチ、バージョン 3.3.2 です。
shm_size が主な原因のようです:
しかし、以前のサーバーでは問題なかったのに、新しいサーバーで問題になっている理由がわかりません。唯一の大きな違いは、古いサーバーが Ubuntu 22.04 LTS を使用しており、新しいサーバーが 24.04 LTS であることです。
これも試しましたが、コンテナが再起動されると変更が上書きされてしまいます。
shm_size はランチャーにハードコードされているようです:
何か洞察や助けがあれば幸いです! 

pfaffman
(Jay Pfaffman)
2
RAMではなく、ハードドライブの空き容量を指します。
「いいね!」 1
@pfaffman ありがとうございます。私も最初はそう思いましたが、このスレッドを読みました。
空き容量もたくさんあるのに 
「いいね!」 1
簡単なダクトテープでの修正方法は、ランチャーファイルを編集するだけです。
cd /var/discourse
vi launcher
次に、--shm-size=512m の3つの出現箇所をすべて、希望するRAM量(私はシステムRAMの50%を使用しました)に置き換えます。
その後、再構築します。ランチャーが更新されるたびに、再度編集する必要があります。
とりあえず、これでうまくいっているようです。

「いいね!」 1
したがって、他の誰かがこの問題に直面した場合に備えてフォローアップします。上記で問題が解決しました。ランチャーでshm-sizeを編集する必要はなくなりました。
これは、再構築中にこの警告に気づいた後に見つかりました。
WARNING メモリのオーバーコミットを有効にする必要があります!無効にすると、メモリ不足の状態でバックグラウンド保存またはレプリケーションが失敗する可能性があります。無効にすると、メモリ不足の状態でも失敗する可能性があり、https://github.com/jemalloc/jemalloc/issues/1328 を参照してください。この問題を修正するには、/etc/sysctl.conf に 'vm.overcommit_memory = 1' を追加してから再起動するか、このコマンドを実行して 'sysctl vm.overcommit_memory=1' を有効にしてください。
「いいね!」 2