메모리 부족으로 3.2.0.beta3-dev에서 3.2.0.beta3 업그레이드 실패

Discourse 측에서 문제를 완화하는 데 도움이 될 수 있는 추가 정보를 공유합니다. 제 인스턴스(DigitalOcean ~1GB 드롭렛, 스왑 2GB)는 최근 재빌드 시간이 눈에 띄게 길어졌으며, 4번 중 3번꼴로 동일한 치명적 오류가 보고되고 있습니다(./launcher cleanup를 실행한 뒤에는 운이 좋아지는 것 같지만, 이를 확인할 만큼 표본 수가 충분하지는 않습니다).

힙 아웃 오브 메모리 오류가 발생하기 직전, 다음과 같은 로그가 기록됩니다:

Node.js heap_size_limit (491.0) is less than 1024MB. Setting --max-old-space-size=1024.
Node.js heap_size_limit (491.0) is less than 2048MB. Disabling Webpack parallelization with JOBS=0 to conserve memory.

이 부분은 제 전문 영역이 아니므로, 잘못 짚은 부분이 있을 수 있습니다. 간단한 조사를 해본 결과, ember-cli가 node.js에 의존하고 있어 이 문제가 관련이 있다고 생각합니다. --max-old-space-size 플래그는 RAM보다 더 높은 값으로 설정할 수 있습니다(이 경우 스왑 공간으로 넘어가며, 이 경우에는 문제가 되지 않습니다). 따라서 1024는 더 이상 재빌드를 감당할 수 없는 인공적인 상한선일 수 있습니다.

참고: --optimize-for-size는 메모리 사용량을 줄이는 데 도움이 되는 node.js 플래그로 알려져 있습니다(Discourse/ember에서 사용 중인지, 이미 사용 중인지 확실하지 않습니다). 또한, 특정 node.js 사용 환경에서 가비지 컬렉터가 활성화되지 않는다는 사례가 있어 이것이 문제가 될 수 있습니다.

이 중 일부가 Discourse 측에서 ember/node.js 사용과 관련하여 관련이 있고 제어할 수 있다면, 누군가가 조사해 볼 가치가 있을 것입니다. 그렇지 않다면 걱정하지 마시고, 위에서 제안한 임시 2GB 업그레이드 솔루션을 진행하겠습니다. :slight_smile: