저는 2vCPU, 1GB RAM 사양의 Lightsail 인스턴스에서 Ubuntu 20.04를 실행하고 있습니다. 여기의 다른 토론을 참고하여 db_shared_memory를 256MB로, Unicorns를 4로 수동으로 수정했습니다. discourse-setup, discourse-doctor, launcher rebuild app을 모두 시도해 보았지만, 모두 동일한 동작을 보입니다.
로그에 다음과 같은 내용이 표시됩니다. WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
하지만 MKJ's Opinionated Discourse Deployment Configuration 에 있는 설정을 적용해 보았지만 도움이 되지 않았습니다.
빌드 프로세스가 다음 부분에서 멈춥니다.
...[Babel: select-kit > applyPatches]
...[@embroider/compat/app]
...[@embroider/webpack]
...[@embroider/webpack]
107:M 22 Jan 2025 14:37:30.565 * 1 changes in 3600 seconds. Saving...
107:M 22 Jan 2025 14:37:31.648 * Background saving started by pid 854
854:C 22 Jan 2025 14:37:34.940 * DB saved on disk
854:C 22 Jan 2025 14:37:35.092 * Fork CoW for RDB: current 0 MB, peak 0 MB, average 0 MB
107:M 22 Jan 2025 14:37:35.341 * Background saving terminated with success
이 문제를 해결하기 위해 제가 할 수 있는 방법이 있을까요? 조언을 부탁드립니다. 감사합니다.
스왑을 늘리니 이전보다 훨씬 더 멀리까지 진행되었지만, 빌드가 완료되기 전에 ssh 연결이 타임아웃되었습니다(약 2시간 실행 후).
1,000번의 Babel: discourse-plugins > applyPatches 사이에서 마지막으로 식별할 수 있는 출력은 [WARN] (broccoli-terser-sourcemap) Minifying "assets/browser-detect.js" took: 43325ms (more than 20,000ms)였습니다. 여기서 더 많은 스왑을 주는 것이 도움이 될까요, 아니면 더 많은 RAM을 살펴봐야 할까요?
제 추측으로는 RAM/메모리가 부족했던 것 같고, 스왑을 늘리면 더 멀리 갈 수 있을 수 있지만, 다시 한번 RAM을 더 늘리는 것을 권장합니다. RAM이 더 많은 환경으로 리사이즈하고, 디스크 크기는 그대로 두며, RAM이 더 많은 상태로 빌드를 재구축한 후, 실행이 정상적으로 되면 VM을 원래의 더 작은 크기로 다시 리사이즈하는 것이 가능할 수 있습니다.