Discourseと他のサービスを同時にホストするのに必要なRAMは?

On discourse’s forums, I have read 1Gb and max 2Gb of memory should be good, however, those two options do not run my website smoothly and when I run my docker-compose file on 4Gb of memory, it works at around 90-95%, which is a lot. Other things in the docker-compose file are a static HTML website I built and an nginx proxy. Can you please let me know if there is some sorta of trick or settings on discourse to make it run smoother on lower RAM

You need to tweak the amount of workers and the DB buffer. So, the options you would need to tweak would be:

  • db_shared_buffers
  • UNICORN_WORKERS

Here you can see the estimates of usage per Unicorn

Discourse is able to run with 512MB of RAM its not a good experience but it’s possible. You issue is that Discourse reviews the server (as the whole node) resources and plans the resource usage to take advantage of as most resources as possible because Discourse makes the assumption it will run alone.

「いいね!」 1

Can you share the docker-conpose file here so we can make appropriate suggestions?

Here is the docker-compose file. I had to remove some of the images links since I cannot post more than 2, however, this should be good. Where would I place the DB buffer environment variable?

version: '2'
services:
  nginx:
    image: ''
    #image: 'itshady/nginx'
    ports:
      - '80:80'
    depends_on:
      - discourse
  intellectus:
    image: '
#    image: 'itshady/intellectus'
    ports:
      - '90:80'
  postgresql:
    image: ''
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
    volumes:
      #- './data/postgresql:/bitnami/postgresql'
      - 'postgresql_data:/bitnami/postgresql'
  redis:
    image: ''
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - 'redis_data:/bitnami'
  discourse:
    image: 'docker.io/bitnami/discourse:2-debian-10'        #2-debian-10
    ports:
      - '100:3000'
    depends_on:
      - postgresql
      - redis
    volumes:
      - './data/discourse:/bitnami'
    environment:
      - POSTGRESQL_HOST=postgresql
      - POSTGRESQL_ROOT_USER=postgres
      - POSTGRESQL_CLIENT_CREATE_DATABASE_NAME=bitnami_application
      - POSTGRESQL_CLIENT_CREATE_DATABASE_USERNAME=bn_discourse
      - POSTGRESQL_CLIENT_CREATE_DATABASE_PASSWORD=bitnami1
      - DISCOURSE_POSTGRESQL_NAME=bitnami_application
      - DISCOURSE_POSTGRESQL_USERNAME=bn_discourse
      - DISCOURSE_POSTGRESQL_PASSWORD=bitnami1
      #- DISCOURSE_HOSTNAME=forums.intellectus.ca
      - DISCOURSE_HOSTNAME=${FORUM_URL}
      - DISCOURSE_EMAIL=
      - SMTP_HOST=
      - SMTP_PORT=
      - SMTP_USER=
      - SMTP_PASSWORD=
  sidekiq:
    image: 'docker.io/bitnami/discourse:2-debian-10'
    depends_on:
      - discourse
    volumes:
      - './data/discourse:/bitnami'
    command: 'nami start --foreground discourse-sidekiq'
    environment:
      - DISCOURSE_POSTGRESQL_NAME=bitnami_application
      - DISCOURSE_POSTGRESQL_USERNAME=bn_discourse
      - DISCOURSE_POSTGRESQL_PASSWORD=bitnami1
      - DISCOURSE_HOST=discourse
      - DISCOURSE_PORT=3000
      #- DISCOURSE_HOSTNAME=forums.intellectus.ca
      - DISCOURSE_HOSTNAME=${FORUM_URL}
      - SMTP_HOST=
      - SMTP_PORT=
      - SMTP_USER=
      - SMTP_PASSWORD=
volumes:
  postgresql_data:
    driver: local
#    external: true
  redis_data:
    driver: local
#    external: true
  discourse_data:
    driver: local
#    external: true

If you wrap your raw code with lines that contain only ``` they will be much easier to read.

As step one, I recommend that you use ./launcher to build and launch your Discourse instance. If you want, you can use ./launcher to build it and then launch it with docker-compose (at least I’ve done similar to build and launch Discourse images with kubernetes).

「いいね!」 1

You are using bitnami images and those are completely unsupported by Discourse maintainers and will probably use more RAM than using the Discourse official Standard Installation

「いいね!」 3

Bitnamiイメージが依然として人気があるのはなぜですか?

自己解決ですが、Bitnamiは、ビルドが決定的で環境変数中心の、唯一の慣用的なDockerオプションのようです。DiscourseはデフォルトでDockerを使用しますが、SSHでログインしてターミナルからセットアップ/保守する必要がある従来のビルドシステムのブートストラップとして、より多く扱っています。

「いいね!」 1

その通りです。ここでヘルプが必要な場合は、標準のインストールに従ってください。Bitnamiからのヘルプが必要な場合は、彼らのイメージを使用できます。

「いいね!」 2

これを読む必要があるかもしれません。

「いいね!」 3