Discourse 3.4.0.beta3에서 Redis 메모리가 계속 증가합니다

최근에 Discourse를 3.4.0.beta1에서 3.4.0.beta3로 업데이트했습니다. 업데이트 후 포럼의 메모리 사용량이 점차 증가하여 애플리케이션이 다운되는 현상을 확인하고 있습니다. 서버를 점검해 보니 redis-server가 메모리의 95%를 차지하고 있는 것으로 나타났습니다.

현재 redis-cli flushall을 매일 실행하여 문제를 일시적으로 해결하고 있습니다. Discourse 인스턴스는 Docker에서 호스팅되고 있습니다.

이전 버전으로 다운그레이드를 시도해 보았으나, 재빌드 과정에서 몇 가지 오류가 발생했습니다.

이 문제를 어떻게 해결할 수 있는지 알려 주실 수 있을까요? 이전 버전으로 다운그레이드하는 것이 가능한가요? 아니면 다른 조언이 있으신가요?

Redis를 어떻게 고쳐야 할지는 모르지만, 언젠가 비슷한 내용을 읽은 적이 있습니다. 검색을 해보시면 도움이 될 수 있습니다.

하지만 다운그레이드는 대부분 나쁜 아이디어입니다.

Discourse를 다운그레이드할 수 없습니다.
Redis는 메모리의 95%가 아니라 38.9%를 사용 중입니다. 그래도 여전히 많은 편입니다.

Sidekiq 큐는 어떤 모습인가요? /sidekiq/queues

/sidekiq/queues의 세부 사항을 확인해 주세요.

추가로 필요한 세부 사항이 있으면 알려 주세요.

이 이메일들이 혹시 채용 공고인가요?

의심스럽네요. 어떻게 확인할 수 있을까요?

큐를 클릭하세요

혹시 이 큐(queue) 섹션에 대해 말씀하시는 건가요?

또 하나, /sidekiq/scheduler/history에서 Jobs::Chat::EmailNotifications 작업이 여전히 긴 시간 동안 실행 중인 것을 확인할 수 있습니다.

네, 'low’라는 단어를 클릭해 주세요.

아래에 자세한 내용을 확인해 주세요

여기에도 동일한 문제가 있습니다:

아마도 해결책이 있을 것 같습니다:

여러분만이 이 문제를 겪고 있는 것이 아니므로, 버그인 것으로 보입니다. :thinking:

감사합니다만, 채팅을 끄는 건 불가능한 것 같아요. 다른 방법을 찾아보겠습니다.

임시 해결책으로 Redis 메모리를 정리하는 작은 bash 스크립트를 작성했으며, cron 작업을 통해 매일 오전 6시에 실행되도록 설정했습니다.
참고: 로그는 /home/ubuntu/logs에 저장됩니다. 필요하지 않다면 무시해도 됩니다.

#!/bin/bash

# 로그 디렉터리와 파일명 설정
LOG_DIR="/home/ubuntu/logs"
LOG_FILE="$LOG_DIR/redis.cleanup.$(date +\%Y-\%m-\%d).log"

# 로그 디렉터리가 존재하는지 확인
mkdir -p "$LOG_DIR"

# 현재 환경에 대한 정보 기록 (호스트 측)
echo "Running script at $(date)" >> "$LOG_FILE"

# 앱에서 discourse launcher 실행 및 출력을 로그 파일에 저장 (호스트 측)
echo "redis cleanup command" >> "$LOG_FILE"
docker exec app redis-cli flushall >> "$LOG_FILE" 2>&1

# 스크립트 완료 표시 (호스트 측) 후 종료
echo "Script completed successfully at $(date)" >> "$LOG_FILE"
exit 0

업데이트: 자동으로 수정된 것 같습니다. 기억해 보니, 지난번 버전을 업데이트했을 때 비슷한 문제가 있었고, 메모리가 계속 급증하다가 얼마 후 저절로 해결된 적이 있습니다. 버그인 것 같습니다.

업데이트: 앱을 종료하고 다시 시작했는데, 같은 문제가 다시 발생했습니다 :slightly_smiling_face:

1억 2,200만 개의 큐 대기 작업은 분명 무언가 잘못되고 있음을 보여줍니다 :thinking:

Discourse에는 몇 명의 사용자가 있나요?
#채팅 채널은 몇 개인가요?
상위 3개 큰 채팅 채널에는 각각 몇 명의 사용자가 있나요?

3.4개의 채팅 그룹이 20만 명 이상의 멤버를 보유하고 있습니다

"lakh"라는 단어는 잘 모르겠는데, 구글에서 검색해보니 100,000이라고 합니다 :open_mouth: 맞나요?

네, 한 그룹에 정확히 227,254명의 회원이 있습니다. 다른 2~3개의 그룹에도 비슷한 규모의 회원이 있습니다.