2GB RAM 인스턴스에서 위의 주제와 동일한 문제를 겪고 있습니다.
에러가 발생하기 직전에 htop 스냅샷을 찍었는데, 스왑이 사용되지 않는 것을 확인할 수 있습니다.
2GB의 스왑이 필요합니다. discourse-setup을 실행했다면 자동으로 생성되었을 것입니다.
이것이 4년 이상 운영되고 있다는 점을 언급했어야 했는데, 2~3개월마다 재구축하고 있습니다.
네, 스왑은 매우 중요합니다.
그것이 없으면 문제가 발생합니다.
즉, 일반적인 리빌드 대신 discourse-setup을 다시 실행하라는 뜻인가요?
discourse-setup을 실행하여 시작하셨다면, 시스템의 특정 문제로 인해 스왑이 생성되지 않았을 수 있습니다. 직접 스왑을 생성해야 할 수도 있습니다. "create swap YOUR-LINUX-DISTRIBUTION"과 같은 검색어로 구글링해 보세요.
Jay와 Robert, 감사합니다. 실제로 swap이 빠져 있었습니다.
해결 방법은 다음과 같습니다:
cd /var/discourse
chmod 700 containers # 불필요할 수 있지만, 해를 끼치지는 않습니다
./discourse-setup
설정 과정에서 swap이 다시 생성되고 종료됩니다.
WARNING: RAM이 2GB 이하로 실행되는 경우 Discourse에는 최소 2GB의 swap 공간이 필요합니다.
이 시스템에는 충분한 swap 공간이 없는 것으로 보입니다.
충분한 swap 공간이 없으면 사이트가 제대로 작동하지 않을 수 있으며,
향후 Discourse 업그레이드가 성공적으로 완료되지 않을 수 있습니다.
Ctrl+C를 눌러 종료하시거나, 2GB swapfile이 생성되도록 5초간 대기하세요.
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=e0321b22-.....
/swapfile swap swap auto 0 0
vm.swappiness = 10
The configuration file containers/app.yml already exists!
. . . reconfiguring . . .
Saving old file as app.yml.2023-10-03-153852.bak
Stopping existing container in 5 seconds or Control-C to cancel.
그 후 일반적인 재빌드(rebuild)를 수행하면 됩니다.
즉, 처음에는 discouse-setup을 실행하지 않고 설치한 것이죠?
아니요, 이 인스턴스는 몇 년 전에 discourse-setup을 사용해 설치했습니다. 왜 스왑이 종료되는지 정확히 모르겠습니다. 얼마 전 서버에 다른 소프트웨어를 설치했다가 나중에 제거했는데, 제가 모르는 어떤 영향을 미쳤을 수도 있습니다. 아마도 해당 앱이 스왑과 상호작용을 했을 가능성이 있지만, 제 전문 분야는 아닙니다. 하지만 현재 인스턴스는 다시 정상적으로 작동하고 있습니다.