가끔 CPU 부하가 매우 높게 발생합니다. 전반적으로 동작은 원활하지만, CPU 부하가 100%에 달하는 순간이 간헐적으로 찾아옵니다. 이때 포럼에서는 502 오류가 발생하거나 매우 느려집니다. 저는 vCPU 3개와 RAM 4GB를 갖춘 Hetzner 서버를 사용하고 있습니다.
이러한 현상의 원인이 될 수 있는 것이 무엇인지 아이디어를 주실 수 있나요?
서버에서 htop 또는 유사한 도구를 실행하여 높은 CPU 부하를 유발하는 프로세스 이름을 식별해 보시겠어요?
주기적 프로세스가 실행 중입니다. 스왑 공간이 있나요? 메모리가 부족해 보입니다. 스왑을 2~4GB 정도 추가하는 것을 권장합니다.
가장 먼저 해야 할 일입니다.
스와프가 없는 것은 여기서 좋은 상황이 아닙니다. 심각한 문제가 발생할 위험에 매우 근접해 있습니다.
@GeorgSeifert 문제를 해결할 수 있었나요?
스왑 추가가 해결책이라면, @pfaffman님의 게시물을 해결책으로 표시해 주세요. 게시물 메뉴에 있는, 안에 체크 표시가 있는 사각형 모양의 버튼입니다.
RAM은 더 많지만 CPU는 더 느리고 가격이 더 싼 다른 서버를 사용해 봤습니다. 며칠 동안 이 서버를 모니터링해 보겠습니다.
스와프를 추가했나요? 이것은 필수적입니다.
지금 당장은 물리적 RAM을 두 배로 늘리면 충분할 것 같았습니다.
Discourse 페이지에는 1~2MB RAM이 있는 서버만으로도 실행에 충분하다고 나와 있었습니다. 그래서 4MB 정도면 꽤 안전할 것 같다고 생각했죠. 지금은 8MB가 있습니다.
우리 포럼에 트래픽이 많은지 확신이 서지 않습니다(단순히 리포트를 확인해 보니 로그인된 사용자가 15명, 로그인되지 않은 사용자가 1000명이라고 나와 있습니다).
충분합니다 — 플러그인이나 사용자, 활동적인 관리자/모더레이터 같은 다른 요소들이 없다면요. 이는 절대 최소 사양이며, 이 정도만으로는 포럼 자체는 작동할 수 있지만 재구축(rebuilding)은 실패할 수 있습니다.
여기서 해당 질문에 대한 주제가 꽤 많으며, 하나의 일반적인 합의는 스왑(swap) 공간이 함께 존재한다면 작은 포럼에는 2MB면 충분하다는 것입니다.
@pfaffman 기억을 되살려 주세요. ./discourse-setup 명령어가 스왑 파일을 자동으로 생성하지 않나요?
@GeorgSeifert 공식 설치 지침에 따라 사이트를 설정하셨나요? 그렇지 않다면 여기서 도움을 드리기 어려울 수 있습니다. 여러분이 말씀드리고 있듯이, 메모리가 아무리 많아도 스왑 파일이 없으면 문제를 겪게 됩니다.
RAM이 충분해 보여도 스왑이 필요한 경우가 여전히 많습니다. 프로세스들이 더 많은 RAM이 사용 가능하다고 인식하면 이를 점유하게 되고, 실제로 더 많은 RAM이 필요할 때 다른 프로세스에서 사용할 수 없게 되기 때문입니다.
생성되긴 하지만, RAM이 2GB 이하일 때만 해당됩니다.
그는 아마 표준 설치 절차를 따랐을 것입니다. RAM이 부족해지는 이유는 명확하지 않지만, 현재 상황은 그렇습니다. 실제 RAM을 추가하면 문제가 해결될 가능성이 있습니다.
설치 페이지에 나와 있는 대로 그대로 진행했습니다.
그렇다면 스왑이 활성화되어 있는지 어떻게 확인하나요?
명령어 free -h를 실행하세요
htop 이미지에 따르면 스왑이 0입니다.
실제로 저는 스왑을 사용하지 않고 있습니다.
설치 과정에서 메모리를 과도하게 사용하는 문제가 있는 것일까요?
RAM을 늘린 결과, 지금은 문제가 해결된 것 같습니다.
스왑 공간을 설정했다면 (그렇게 해야 합니다) 그렇게 많은 RAM이 필요하지 않습니다.
참고로 설치 및 업데이트는 정상 작동 시보다 훨씬 더 많은 메모리가 필요합니다. memory=swap+RAM.