높은 재구축 메모리 요구 사항: 2025년 4월 에디션

네, 다음 테스트를 완료했습니다.

다음 플러그인으로 빌드했습니다:

https://github.com/discourse/docker_manager.git
https://github.com/discourse/discourse-data-explorer
https://github.com/communiteq/discourse-legal-compliance
https://github.com/pfaffman/discourse-allow-pm-to-staff
https://github.com/singerscreations/discourse-stopforumspam
https://github.com/discourse/discourse-cakeday

스왑이 비활성화되어 있어 RAM은 4GiB/3.8GB만 사용되었습니다.

빌드 중 최대 메모리 사용량은 3.4GB였으며, 빌드 소요 시간은 6분 48초였습니다.

저의 경우, 문제는 스왑 파일이었습니다. 0에서 2GB로 늘린 후 지금은 모든 것이 정상입니다.

sudo fallocate -l 2G /swapfile        
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

서버 터미널에서 위 명령을 실행한 후 다시 빌드해 주세요.

리빌드 시 필요한 메모리가 크게 증가하고 있습니다. 8GB의 메모리가 있고 8GB 스왑파일을 추가해도 이 단계에서 공간이 부족합니다: cd /var/www/discourse && sudo -E -u discourse bundle exec rake multisite:migrate

포럼 4개가 있는 멀티사이트 설치 환경입니다. 이전에는 스왑파일을 추가할 필요가 없었습니다.

수정 이제 16GB 스왑으로 시도해 보았지만 여전히 메모리가 부족합니다.

이것은 최소한의 플러그인만 활성화된 Linux 환경입니다. 커널이 프로세스를 종료시키고 있습니다.

음… 문서에 더 높은 메모리 요구 사항을 반영하도록 업데이트해야 할까요? Introducing pre-compiled JS assets for self-hosters 이 변경 사항이 부하를 줄이는 데 도움이 되었을까요? 그 변경 사항 덕분에 RAM 사용량이 줄어들 것이라고 생각했는데 :thinking: .

마지막으로 재빌드를 한 지 몇 달은 지났을 것 같은데, 이전에는 8GB RAM과 스왑 없이도 정상적으로 작동했습니다. 아직 이 문제를 해결하지 못해서 네 사이트가 모두 다운되어 있습니다.

이것이 관련이 있는지 모르겠지만, 환경 변수 HOME: /var/www/discourse를 설정하기 전까지는 빌드가 되지 않았습니다. 그렇지 않으면 /root에 쓰기 작업을 시도하다가 권한 거부 오류가 발생했기 때문입니다.

음, 이런 프로세스가 백 개 이상 보인다고요:

node /usr/bin/pnpm add pnpm@10.28.0 --loglevel=error --allow-build=@pnpm/exe --no-dangerously-allow-all-builds --config.node-linker=hoisted --config.bin=bin

이게 일종의 포크 폭탄(fork bomb)인가요?

반드시 많은 양의 스왑을 추가하세요. 단순히 시스템이 다시 작동하도록 만드는 것만으로도 큰 도움이 됩니다. 여기서 스왑을 사용하는 장점은 빌드가 일시적인 피크라는 점입니다.

저는 컨테이너 2개를 사용하는 방식을 사용하는데, 부트스트랩 중에 컨테이너 2개가 동시에 실행되므로 메모리 압력이 더 심합니다. :sweat_smile:

40GB의 스왑을 추가했는데도 여전히 부족합니다.

수백 개의 노드 프로세스가 보이는데, 이것이 문제인 것 같습니다.

근본 원인이 이전에 HOME: /var/www/discourse를 설정하지 않으면 /root 아래에 파일을 쓰려고 했던 문제와 동일하다는 생각이 들기 시작합니다. 다만 어떻게 처리해야 할지는 잘 모르겠습니다.

음, 뭔가 아주 잘못되었습니다. 백업 후 처음부터 다시 만드는 것도 고려해 보겠습니다.

어떻게 해야 하나요?

참고:

감사합니다. 일단 서버 전체를 마지막으로 정상 작동했던 상태로 되돌린 후, 정상적인 시스템에서 백업하는 것이 좋을 것 같습니다.
어떤 문제가 발생했을 수 있는지 아이디어를 주실 수 있나요?

문제는 실제로 HOME이 올바르게 설정되지 않았기 때문이었습니다. 멀티사이트 마이그레이션에 사용되는 sudo 명령에 -H를 추가하니 문제가 해결되었습니다. 자세한 내용은 다음 링크에서 확인하실 수 있습니다:

https://meta.discourse.org/t/multisite-configuration-with-docker/14084/184?u=yaxu