빌드 시간이 매우 오래 걸립니다

안녕하세요,

Ubuntu 20, Docker, Discourse를 새로 설치했습니다. 플러그인은 하나도 설치하지 않았고 데이터베이스에는 사용자 2명만 있지만, 빌드가 완료되는데 40분 이상 걸립니다! 빌드 과정에서 특정 부분만 느린 것이 아니라, 전체 과정이 완료되는 데 엄청난 시간이 걸립니다. 서버 사양은 꽤 좋은 편이고, 같은 서버에서 다른 20개 클라이언트 웹사이트를 문제없이 서비스하고 있으므로 성능 문제는 아닌 것 같습니다.

여기에서 최소 4분 이상 멈춥니다:

warning Resolution field "lodash@4.17.21" is incompatible with requested version "lodash@4.17.15"

그 직후 다시 4~5분 정도 멈춥니다:

warning " > @mixer/parallel-prettier@2.0.1" has unmet peer dependency "prettier@^2.0.0".

–skip-prereqs 옵션으로 빌드를 시도해 보았지만 효과가 없었습니다. 여전히 재빌드마다 40분 이상 걸립니다.

문제의 원인이 될 수 있는 특별한 부분이 있을까요?

도움 주셔서 감사합니다.

재빌드에도 시간이 오래 걸리는 것 같네요. RAM 용량은 얼마나 되나요?

DO 드롭렛(1 GB 메모리 / 25 GB 디스크 / LON1 - Ubuntu 20.04 (LTS) x64)를 다시 구축했습니다.

20:25,44가 소요되었습니다.

예상대로 CPU가 급증했습니다.

메모리는 무작위로 변동되었습니다.

대역폭은 놀라울 정도였습니다.

UI를 통해 테마 테스트를 실행할 수 있는 새로운 기능이 도입되면서 빌드 시간에 회귀 현상이 발생했습니다. 이 문제는 현재 면밀히 추적하고 있으며 수정을 위해 노력하고 있습니다.

RAM 4GB :+1: 업데이트 감사합니다 @Falco

@Falco 님, 확인해 주셔서 감사합니다. 여기서는 RAM이 1GB입니다 (조금 빠듯하지만, 가벼운 사이트에는 더 이상 필요 없었습니다). 빌드에 30분 이상 걸리고 있습니다 (보통은 약 10분 정도 걸립니다).

Rafael님, 이 회귀 현상은 2.9.0 베타 버전에서 발생한 건가요, 아니면 2.8.0 안정 버전에서 발생한 건가요?

첫 번째 게시글로 돌아가서, 그 경고가 어디서 오는지 아는 분 계신가요?

정말 고려할 가치가 있는 것인지는 모르겠지만, 개인적으로 많은 경우 Ubuntu 20.04를 사용할 때 성능이 저하되는 것을 느꼈습니다 (Discourse, 웹 서버, 게임 서버). 최적화를 시도하기 위해 여러 방법을 해보았지만 마찬가지입니다 :thinking:

현재 저는 동일한 사양의 Droplet에서 테스트를 위해 Discourse를 실행 중인데, 재빌드하는 데 약 8~12분이 걸립니다 (Ubuntu 18).

빌드 시간은 설치된 플러그인과 테마 컴포넌트의 수에 따라 달라집니다.

재빌드에도 시간이 걸리죠.

저는 공식 플러그인을 모두 로드하고 있어서 빌드가 조금 더 오래 걸립니다.

알고 있습니다. 하지만 이 경우에는 플러그인 없이 사양이 "동등"하다는 의미, 즉 플러그인 없이도 같다는 뜻이었습니다.

그 경고 때문에 빌드가 “멈춰 있는” 것 같지는 않습니다. 그냥 조용히 빌드가 진행되고 있고, 그 과정에서 경고가 출력되는 것입니다.

즉, 경고나 그 근본 원인이 긴 빌드 시간의 원인이 아닙니다.

@Falco 님, 이 문제를 어디서 추적할 수 있을까요? 알려주셔서 감사합니다. 저도 우연히 발견했는데, 여기서는 정말 큰 문제입니다.

수년간 진행해 온 이 거대한 변화가 마침내 막바지에 다다르고 있습니다. 이 과정에서 “좋아지기 전에 먼저 나빠지는” 시기가 있으며, 지금 겪고 있는 것도 그 ‘나빠지는’ 부작용 중 하나입니다.

기존 모든 사이트에서 새 설치 시 프로덕션 환경에서 기본적으로 Ember CLI 빌드를 사용하도록 전환하고, 기존 에셋 파이프라인을 완전히 제거하면, 이를 적극적으로 현대화하고 상류(upstream)에서 일부 이점을 얻을 수 있을 것으로 기대합니다.

또한, 느린 CPU를 사용하는 사용자가 소스 맵(source maps)이나 기타 ‘있으면 좋은’ 기능을 비활성화하여 재빌드 속도를 높일 수 있도록 하는 옵션을 제공할 수도 있습니다.

@Falco 님, 업데이트 감사해요 :heart: Linode에서 쿼드 CPU와 8GB RAM을 사용 중인데, 평소에는 정말 훌륭한 환경이었지만 지금은 악몽 그 자체예요. 여러 가지 변경 사항을 계획하고 있었지만, 배포 속도가 다시 정상 수준으로 돌아올 때까지 기다려야 할 것 같아요.

@Falco 최근 몇 가지 릴리스에서 서버 성능이 저하되는 것을 저도 확인하고 있습니다. 사이트 로딩에 더 오래 걸리고 메모리 사용량도 증가하고 있습니다. 지난 2년 동안 제 환경(플러그인, 하드웨어 등)에는 변경 사항이 없었으며 사이트의 활성 사용자 수도 동일합니다. Discourse 내에서 사이트 성능을 객관적으로 모니터링할 수 있는 방법이 있는지, 그리고 이를 통해 여기서 보고할 수 있는 방법이 있는지 궁금합니다. 현재 제가 아는 유일한 방법은 사이트를 열었을 때 첫 로딩에 8초 이상이 걸리는 것입니다(이전 빌드에서는 항상 2~3초 이내였습니다).

여러분은 재빌드 시간이 얼마나 걸리나요? SMTP 변경으로 인해 재빌드가 필요했는데, 아주 작은 사이트(사용자 30명, 게시글 400개)인데도 불구하고 12분에 조금 못 미치는 시간이 걸렸습니다.

이 게시글은 "빌드 시간"에 관한 것입니다. 페이지 로딩 시간(응답 시간) 저하에 대해 말씀하시는 거라면, 관련 데이터와 함께 새로운 게시글을 만들어 주시기 바랍니다.

오늘 아침 마지막 빌드는 약 20분 걸렸습니다

네, 감사합니다. 오늘 업데이트 이후로 페이지 로딩 시간이 다시 정상적인 2~3초로 돌아왔네요 (좋은 sorpresa).

아프네요. 그건 정상적인 시간이 아닙니다.

페이지 로딩이 이렇게 느린 이유를 알아낸 것 같습니다. app.yml에서 공유 DB 크기가 시스템의 총 메모리와 동일하게 설정되어 있었습니다. 기본값(25%)으로 되돌리고 다시 빌드한 결과, 이제 1초 미만으로 로딩됩니다.