이번 주말 업그레이드 이후 CPU 사용량이 상당히 증가한 것을 확인했습니다. RUBY 프로세스가 주요 원인으로 보입니다. 이는 해당 토픽 에서 다른 디스코스(Discourse) 사용자가 언급한 내용과 일치합니다.
아래 그래프에서 볼 수 있듯이, 업그레이드 이전의 CPU 사용량과 로드는 업그레이드 이후보다 훨씬 낮았습니다. 업그레이드는 1월 31일 저녁에 수행되었습니다.
33시간 간격으로 촬영한 TOP 명령어 실행 결과 두 장입니다:
33시간 동안 ruby 프로세스의 CPU 사용량이 현저히 증가했습니다. TOP 데이터에 따르면, 지난 22일 동안의 CPU 사용량 대비 최근 33시간 동안 CPU 사용량이 2배로 증가했습니다. 33시간 동안 총 11시간의 CPU 시간을 사용했습니다. (5개의 PID에 걸쳐 총 648분)
추가 데이터:
지난 이틀간 트래픽은 약 10% 감소했습니다. (애널리틱스 및 대시보드 기준)
표준 단일 컨테이너 Discourse 설치 (채팅 없음)
Sidekiq 큐는 최소 수준입니다. (하루 1,000~2,000건)
Discourse 로그에서 특이한 사항은 발견되지 않았습니다.
8GB RAM과 2개 AMD vCPU를 갖춘 DO(DigitalOcean) 서버에서 실행 중입니다.
서버가 완전히 다운된 상황은 아니지만, 5%~7% 수준으로 돌아가는 서버가 25% 수준으로 돌아가는 서버보다 훨씬 안정적입니다.
이 문제를 해결하는 데 도움이 될 수 있는 어떤 정보를 제공해야 할까요?
감사합니다.
sam
(Sam Saffron)
2월 3, 2025, 4:44오전
2
버그가 있는지 확인하기까지 잠시 지원 티켓으로 남겨두겠습니다.
컨테이너에 들어가서 htop을 실행해 볼 수 있을까요? (설치가 필요합니다) 이렇게 하면 CPU 사용량이 높은 특정 프로세스를 확인할 수 있습니다.
다음과 같은 기법을 사용하면 더 많은 정보를 얻을 수 있습니다: Debugging 100% CPU usage in production Ruby on Rails systems
그러나 가장 가능성이 높은 경우는 sidekiq /sidekiq가 인스턴스에서 과부하 상태인 것입니다. (특히 스케줄러를 살펴보는 것이 좋습니다)
sam
(Sam Saffron)
2월 3, 2025, 5:41오전
4
음, 뭔가 이상해요:
top -H -p PID_OF_UNICORN
거기서 V8 DefaultWorker를 볼 수 있을 것 같아요. 이건 mini_racer의 회귀(regression) 문제인 것 같네요. 이 문제가 해결되는지 확인하기 위해 되돌려 볼게요.
네, 높은 CPU 사용량 문제가 해결되었습니다. 1분 및 5분 평균 부하가 이전 값의 약 1/3 수준으로 낮아졌습니다. 이는 현재 시스템에서 htop과 netdata가 실행 중인 상태에서의 결과입니다.
HTOP 영상
Do 그래프
시스템에 더 많은 데이터베이스 쿼리가 캐시됨에 따라 CPU 사용량과 부하가 서서히 감소할 것으로 예상됩니다.
부하 테이블:
시간
수정 전
수정 후
1분
0.4 ~ 0.6
0.06 ~ 0.1
5분
0.39 ~ 0.5
0.15 ~ 0.18
15분 지표는 재빌드(rebuild)의 영향을 받습니다. 오늘 아침에 추가 통계를 공유하겠습니다.
늦은 밤까지 수정해 주셔서 감사합니다.
sam
(Sam Saffron)
2월 3, 2025, 7:27오전
7
죄송합니다. mini_racer 업그레이드가 정말 큰 모험이었어요. 곧 해결될 수 있기를 바랍니다.
빠른 응답과 조사를 위해 감사합니다.
롤백보다는 그날 다른 계획이 있으셨을 텐데요.
이주 후 2주째인 신규 Discourse 사용자로서, 이 제품은 사용감이 매우 좋습니다.
X_Y
(X Y)
2월 3, 2025, 6:53오후
9
여기서도 비슷한 상황입니다.
[수정: 최신 브랜치로 업데이트한 후 이제 해결된 것 같습니다]
재빌드 후 18시간이 지난 성능 검토 결과입니다. 부하 테이블이 모든 것을 말해 줍니다.
부하 테이블:
시간
수정 전
수정 후
1분
0.4 ~ 0.6
0.03 ~ 0.05
5분
0.39 ~ 0.5
0.09
15분
0.68
0.12
범례:
빨간 화살표 - 앱 재빌드
보라색 화살표 - netdata 종료
sam
(Sam Saffron)
2월 4, 2025, 5:47오전
11
참고로, 루프를 닫으면서, 이 문제를 일으키던 버그는 다음과 같았습니다:
committed 01:17AM - 04 Feb 25 UTC
저는 해당 지엠(gem)을 업데이트했습니다. 즉각적인 이점 중 하나는 이 v8 버전이 약간 더 적은 메모리를 사용한다는 점으로, 이는 좋은 소식입니다.
어젯밤 수정이 포함된 최신 릴리스를 설치했습니다. CPU 사용량이 과거 수준으로 돌아왔습니다.
훌륭한 작업에 감사드립니다.