Alec
(Alec)
9월 12, 2020, 9:35오후
1
오늘 내 포럼이 첫 번째 트래픽 급증을 겪었고, 사용자들도 첫 번째 큰 문제를 경험했습니다. 5~10분마다 로그아웃 메시지가 표시되고 홈 화면으로 되돌아가는 일이 발생했지만, 대부분의 경우 로그인 상태는 유지되었습니다.
내 포럼은 DO 기본 드롭렛, 공유 CPU, 1GB RAM 구성이며, 약 일주일간 운영되어 왔습니다.
급증은 90분 동안 단일 스레드에 400개의 게시글이 작성된 경기 중(관중들이 경기를 따라가면서) 발생했습니다. 이 기간 동안 40~60명의 게시자가 온라인 상태였던 것으로 보이며, 익명 방문자는 많지 않았을 것으로 추정됩니다(총 등록 사용자가 250명입니다).
이것이 제 첫 포럼인데, 저사양 드롭렛의 한계로 볼 수 있을까요?
CPU 사용률은 60%까지 피크를 기록했으며, 경기 중에도 포럼은 빠르고 반응성이 좋았습니다.
Digital Ocean에는 메모리 그래프가 없지만, 경기 직후 콘솔에 접속해 확인한 결과 메모리 사용률이 87%(2GB 스왑 기준 약 37%)였습니다.
권장 조치 방안은 무엇일까요?
다음 경기를 위해 2GB 드롭렛으로 업그레이드하고 상황을 지켜보는 것?
일부 플러그인을 제거하는 등 재빌드하는 것?
이벤트를 트리거하는 임계값을 변경하는 것?
초보적인 질문을 해서 죄송합니다. 아직 많이 배우는 중입니다.
네, 먼저 그렇게 시도해 보시는 것이 좋습니다.
"사용자가 랜덤하게 로그아웃된다"는 말에 대해.. 저는 그런 이야기를 들어본 적이 없습니다.. 이 말은 주제 상단의 이 공지사항을 말씀하시는 건가요?
극심한 부하로 인해, 임시로 모든 사용자에게 로그아웃된 사용자가 보는 것과 같은 화면이 표시되고 있습니다
이러한 높은 부하 상황에서는 검색 기능도 자동으로 비활성화됩니다.
Alec
(Alec)
9월 12, 2020, 10:45오후
3
빠른 답변 감사합니다. 말씀하신 대로 진행하겠습니다.
네, 극심한 부하 알림이 사람들이 목격한 현상인 것 같습니다. 자동으로 포럼 홈 페이지로 리다이렉트되던 거죠.
대부분의 사용자는 이 알림을 확인한 뒤 단순히 리다이렉트된 상태였습니다. 그 이상은 없었습니다.
몇몇 사용자는 이런 일이 평소에도 자신들에게 발생한다고 말했습니다. 하지만 추가로, 이런 상황이 한두 번 있을 때 동시에 로그아웃되기도 했다고 합니다.
Alec:
포럼 홈 페이지로 자동 리디렉션됩니다.
리디렉션도, 자동 로그아웃도 없는 것 같은데, 무슨 말을 하는지 잘 모르겠습니다. 트래픽이 많아져서 단순히 익명 사용자로 해당 주제를 보는 것뿐입니다.
설치 환경에 문제가 있는 건 아닌지 궁금합니다. 공식 설치 가이드를 따라 설치하셨나요? 이상한 서드파티 플러그인을 사용 중이신가요?
Alec
(Alec)
9월 12, 2020, 10:51오후
5
네, 제가 따랐던 바로 그 설명서입니다.
설치 과정에서 제가 실수를 했을 수도 있습니다.
처음 해보는 것이라 몇 번을 시도해야 했고, 플러그인으로 실험하면서 몇 번 재빌드도 해봤습니다.
Alec
(Alec)
9월 12, 2020, 10:57오후
6
설치한 플러그인은 다음과 같습니다.
Docker manager
Legal tools
Who’s online
Formatting toolbar
그래서 꽤 표준적인 플러그인이라고 생각합니다.
Stephen
(Stephen)
9월 13, 2020, 12:39오전
7
특히 온라인 사용자 목록은 상당한 리소스를 소모할 수 있습니다.
Alec
(Alec)
9월 13, 2020, 6:59오전
8
스킨이 너무 많으면 리소스 소모가 크다고 볼 수 있을까요?
Alec
(Alec)
9월 19, 2020, 8:38오후
9
스레드에 업데이트를 하나 남깁니다.
최근 스파이크(부하 급증) 상황에서 메모리를 1GB에서 2GB로 업그레이드했지만 큰 효과를 보지는 못한 것 같습니다. app.yml 파일을 변경하거나 재빌드한 적이 없어서, 그것이 차이를 만들었을지는 모르겠습니다.
하지만 CPU를 가상 CPU 1개에서 2개로 업그레이드한 것이 효과를 본 것 같습니다.
최근 새로운 선수 영입으로 인해 매우 바빴지만, 로그아웃을 보고한 사람은 없습니다. 내일 큰 경기가 있어 큰 테스트가 될 것 같지만, 지금은 잘 작동하는 것으로 보입니다.
Stephen
(Stephen)
9월 19, 2020, 8:42오후
10
업그레이드의 실제 이점을 얻으려면 app.yml을 업데이트하고 다시 빌드해야 합니다.
db_shared_buffers는 시스템 메모리의 25%로 설정해야 하며, 이는 512MB입니다. 현재 설정은 아마도 256MB일 것입니다.
unicorn_workers는 코어당 2개씩 설정해야 하므로 2에서 4로 변경하세요.
Stephen
(Stephen)
9월 21, 2020, 11:58오후
12
어제 테스트는 어떻게 됐어? 업그레이드가 도움이 됐어?
Alec
(Alec)
9월 27, 2020, 11:10오후
13
훨씬, 정말로 훨씬 나아졌네요. 감사합니다 .
지난번에는 게임 중 4~5분마다 반복적으로 발생해서 정말 골치 아팠는데, 이번 주말 게임에서는 큰 문제가 되지 않는 것 같습니다.
게임 중 과부하 메시지를 한 번만 받은 사용자가 소수인 것 같습니다. 하지만 스레드에서 강퇴된 사람은 아무도 없었습니다.
디스코스로의 전환은 압도적인 성공이었습니다. 수년 동안 보지 못했던 많은 게시자(최소 50% 이상)를 볼 수 있었거든요. 그래서 2주 후 Digital Ocean에서 Hetzner로 이전할 계획입니다. 이렇게 하면 비용을 합리적으로 유지하면서 스파이크(급격한 트래픽 증가)를 처리할 수 있는 더 강력한 서버를 확보할 수 있습니다(물론 매주 2시간짜리 시간대에만 서버를 단계별로 올리고 내리는 것도 유혹스럽긴 합니다).