업데이트/재빌드 때문에 CPU 사용량이 급등합니다

방금 Amazon Lightsail 인스턴스를 간단히 재시작하는 과정에서 가장 기이한 경험을 했습니다.

  1. 재시작을 진행했고… 재시작을 기다렸습니다.
  2. 일부(캐시되지 않은 것으로 추정되는) 페이지에서 “502 Gateway Error - Nginx” 오류 화면이 나타났습니다. 잠시 기다렸습니다…
  3. 셸을 통해 discourse 재빌드를 수행했습니다.
  4. 재빌드 실패라는 오류 메시지가 떴습니다.
  5. ./discourse-doctor를 사용했습니다. - 이것도 실패했습니다.
  6. 비공식 플러그인을 비활성화하고 재빌드했습니다. - 이것도 실패했습니다.

완전히 망했다고 생각했습니다. 그리고 더 많은 연구를 하던 중 다시 포럼을 확인했는데, 이상하게도 정상적으로 작동하고 있었습니다. discourse 문서의 즉각적인 반응이 "경고! 앱이 아예 실행되지 않습니다!"였다는 점을 고려하면 전혀 말이 되지 않죠. :slight_smile:

제 추측은 이것이 아마도 Amazon의 버스테이블(burstable) 한도와 더 관련이 있을 것이라는 것입니다. 재시작이 서버에 부담을 주어 초기 502 오류의 원인이 되었을 수 있고, 확실히 재빌드가 서버를 버스트 한도의 70~80%까지 끌어올렸으며, 재빌드 스크립트를 실행할 시스템 리소스가 부족했을 수도 있습니다.

그래서 제 최종 질문은 (이것이 업데이트 재빌드 프로세스를 끊임없이 괴롭혀 온 문제이므로) 서버에 가해지는 업데이트 스크립트의 부하를 제한하여 서버가 과부하로 멈추지 않게 하는 방법이 있는가? 하는 것입니다. 이 인스턴스는 8GB RAM을 갖추고 있으므로 그렇게 약한 편은 아니거든요.

감사합니다… 그리고 이유 없이 Ativan을 2알 먹었습니다. :smiley:

설명만으로는 정확히 판단하기 어렵습니다. 다시 빌드할 때 어떤 오류가 발생하나요?

조금 후에 다른 업데이트를 시도하고 이 부분을 업데이트하겠습니다. 로그 파일을 저장하지 않았고, 업데이트를 실행하면 버스트 존이 상당히 크게 소모됩니다(특히 3회 실행 후에는 더 심합니다). 그래서 버스트 레벨이 다시 회복되려면 하루 정도 기다려야 했습니다.

이것이 원인으로 보입니다.

Seeding default
*** Bundling assets. This will take a while *** 
$ RUBY_GC_MALLOC_LIMIT_MAX=20971520 RUBY_GC_OLDMALLOC_LIMIT_MAX=20971520 RUBY_GC_HEAP_GROWTH_MAX_SLOTS=50000 RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=0.9  bundle exec rake themes:update assets:precompile
Updating Dark...
Failed to update Dark
about.json contains invalid values: Maximum discourse version is invalid

그리고 이제 내 포럼이 완전히 다운되어 500 오류가 나고 있습니다. :frowning:

왜 그런 일이 발생했을까요? 업데이트 과정이 완료되고 문제가 발생하지 않을 때에만 현재 정상 작동 중인 포럼을 교체한다고 생각했거든요.

원래 문제가 무엇인지는 모르겠지만, 현재 문제는 이겁니다: Failed to Bootstrap, due to discourse-alt-logo theme component

아래와 같이 실행한 뒤

 ./launcher start app

그리고 나서 문제 있는 테마 구성 요소를 삭제하면 됩니다.

그런데 dark는 시스템 테마 구성 요소가 아닌가요? 시스템 테마 구성 요소가 그런 문제를 일으킬 수 있나요?

그래도 감사합니다. 이제 무슨 일이 일어나고 있는지 알았으니 문제를 해결할 수 있을 것 같습니다.

테마 컴포넌트는 더 이상 사용되지 않으며, Discourse는 이를 사용하지 않습니다.

다만 ./launcher rebuild app을 실행하면 컨테이너를 중단하고 새 컨테이너를 빌드합니다(동일한 데이터베이스 파일을 사용하기 때문이죠). 빌드가 실패하면 컨테이너를 다시 시작해야 다시 실행할 수 있습니다.

네, 실제로 Dark와 Alternate Logos 구성 요소를 삭제한 후, 업데이트 화면에서 모든 다른 요소가 업데이트가 완료된 것을 확인했습니다.