Discourse에 필요한 RAM 용량은 얼마인가요?

안녕하세요,

최근 제 VPS에 Discourse를 설치했습니다. RAM이 2GB밖에 없습니다. 이 용량으로 프로덕션 환경에서 포럼을 운영하기에 충분한가요? 메모리 부족으로 인해 502 게이트웨이 오류가 발생한 적이 있습니다. 또한 플러그인을 설치한 후 관리자 패널을 여러 번 새로고침해야 하는 경우가 있습니다.

다른 스레드에서는 RAM 1GB면 충분하다고 하는데, 현실적인 권장 사양은 어떻게 되나요? 저는 bitnami의 최신 docker 이미지를 사용하고 있습니다. sidekiq가 최대 4GB의 RAM을 사용할 수 있다는 의견도 있습니다: https://github.com/bitnami/bitnami-docker-discourse/issues/150

2GB RAM의 VPS에서 Discourse를 쉽게 실행할 수 있습니다. 스왑 공간이 아직 설정되어 있지 않다면 설정하는 것을 고려해 보세요. ./discourse-setup을 실행하면 이 작업이 자동으로 수행됩니다.

처음에는 스왑을 설정해 두었지만, 스왑 메모리를 사용하면 속도가 크게 느려지므로 기본적으로 그렇게 하기를 원치 않았습니다.

기본 설정은 웹 업데이트와 같은 부하가 걸릴 때만 스왑을 사용하도록 되어 있습니다.

대규모 커뮤니티를 호스팅하고 Discourse API에서 응답 시간이 느려지는 문제를 경험하기 시작한다면, 서버의 CPU/RAM을 늘리고 ./discourse-setup을 다시 실행하여 증강된 리소스를 사용하도록 할 수 있습니다.

새로운 커뮤니티인가요, 아니면 대용량 데이터베이스를 가져온 건가요? 예상 트래픽은 얼마나 되나요? 단일 스레드 CPU 속도와 스토리지용 SSD가 매우 중요합니다.

데이터베이스를 가져오지 않았습니다. 게시글이 0개인 완전히 새로운 포럼입니다. 현재 유일한 트래픽은 저뿐입니다. 하지만 하루에 최대 1,000명의 사용자가 사이트를 방문할 수 있는 트래픽을 예상하고 있습니다.

아, 그러셨군요. 그렇게 하지 마세요. 아니면 왜 성능이 이렇게 나쁜지 그들에게 물어보세요.

참고: Discourse 공식 표준 설치

왜 bitnami 이미지를 사용하지 않는 것을 권장하시는지 궁금합니다. (아마도 @AntiMetaman은 여기에서 언급한 그들의 새로운 helm 차트를 가리키고 계실 겁니다.)

또한, 여기에도 새로운 helm 차트가 있습니다.

Discourse를 개발하는 우리 팀은 자체적인 기본 이미지와만 테스트를 수행합니다. Install Discourse in production with the official supported instructions 에 명시된 공식 표준 설치 절차를 따르지 않는 설치 환경은 언제든 미세한 오류가 발생할 수 있으며, 이에 대해서는 지원을 제공하지 않습니다.

참고로, @AntiMetaman 님께 다른 관점을 제시해 보겠습니다.

Discourse는 최소 RAM으로 VPS에서도 실행할 수 있지만, RAM이 더 많은 머신에서 빌드하는 것과 비교하면 Discourse를 빌드 및 재빌드할 때 속도가 상당히 느립니다. 개인적으로 2GB RAM에서 “진정한” 프로덕션 Discourse 앱을 실행하지는 않겠지만, 이는 제 개인적인 의견일 뿐입니다.

참고로(제 의견일 뿐이지만), 저는 1GB, 2GB, 8GB, 32GB, 64GB RAM 서버에 Discourse를 설치해 봤습니다. VPS와 전용 서버 모두 포함합니다. 솔직히 64GB 및 32GB 머신에서 Discourse를 빌드하는 것을 좋아합니다. 64GB에서 빌드하는 속도가 정말 빠르거든요. 재빌드도 번개처럼 빠르고, 뜨거운 토스트 위에 버터를 발라놓은 것처럼 부드럽게 잘 동작합니다. 그래서 저는 최소 RAM으로 아주 작은 환경에서 스탠드얼론 모드로 실행하는 것보다, 다른 애플리케이션과 함께 “더 큰” 머신(더 많은 RAM, 더 많은 디스크 공간)에서 Discourse를 실행하는 것을 선호합니다.

그러나 이는 제 개인적인 Discourse와 Docker 사용 경험 및 선호도에 기반한 것입니다. 저는 Discourse가 빠르게 재빌드되고 프로덕션 환경에서 충분한 여유 공간(head room)이 있는 것을 선호하며, 2GB는 제 빌드 속도 요구사항을 충족하지 못합니다.

Discourse는 최소 1GB를 권장하며, 실제로 1GB로 설치해 본 결과 성능이 빠르게 저하되므로 2GB를 사용하는 것을 권장합니다.

처음 2GB를 사용했을 때 오랫동안 안정적으로 동작했습니다. 현재 크롤러를 제외하고 일일 방문 약 3,500회, 하루 20~30개의 게시글이 올라오는 커뮤니티를 운영 중인데, 2GB RAM에서任何问题이 발생하지 않았으며 속도 저하도 느끼지 못했습니다.

@AntiMetaman 님의 문제는 리소스가 아닌 Bitnami 이미지와 관련이 있을 가능성이 높다고 거의 확신합니다. CPU가 충분히 빠른지 확인하시고, 가능하다면 CPU 코어를 하나 더 추가해 보세요(저는 1vCPU만 사용해도 충분히 동작합니다).

bitnami 이미지는 여전히 안정적인 2.4.4 버전을 사용 중입니다. bitnami를 선택한 이유는 표준 docker-compose.yml 파일이 포함되어 있어 설치 과정이 더 쉬웠기 때문입니다. 공식 Discourse 이미지를 사용해 2.6.0 beta 1로 업그레이드를 시도했던 몇몇 사용자는 실패한 것으로 알려졌습니다. 저는 공식 Discourse 이미지를 사용해 보겠습니다.

좋은 생각입니다. Bitnami 설치와 같은 제3자 패키지는 여기서 지원이 전혀 되지 않습니다.

이미 언급하셨듯이, 이 패키지는 꽤 오래된 버전이기도 합니다.

@Falco 님 - 그 명령어를 콘솔에서 실행하라는 의미인가요, 아니면 www.mysite.com/wizard 에서 설정 마법사를 실행하는 것만으로 충분한가요?

사실 둘은 서로 다른 것입니다. :slight_smile:

/wizard는 설치 후 사이트를 설정하기 위한 UI 및 관리자 설정을 위한 것으로, 사이트/브라우저를 통해 접근합니다.

discourse-setup은 설치 과정 자체의 일부로(일부) 서버 리소스를 할당하며, 서버에서 실행됩니다.

discourse-setup을 여러 번 다시 실행해도 사이트 데이터가 덮어쓰여지지 않습니다.

@JammyDodger 님, 설명해 주셔서 감사합니다. 정말 감사드립니다.

제 사이트가 꽤 버벅거렸는데, 서버에 RAM을 추가했습니다. 이제 공유 버퍼 할당량이 128MB에서 2048MB로 증가하여 훨씬 더 잘 작동하는 것 같습니다.

이전에는 app.yml 파일을 수동으로 편집한 후 SFTP로 업로드했는데, 방금 앱을 재구성할 때 권한 경고가 표시되는 것을 방금 발견했습니다. app.yml 파일의 권한은 어떻게 설정해야 하나요?

644 또는 600입니다. 말씀하신 메시지가 무엇이 되어야 하는지 알려줄 것입니다.

감사합니다, @pfaffman!