Ghost CMS가 CPU를 100% 쓰는 SQLite 문제 해결 사례
가 방문자 증가나 업데이트 작업 없이 갑자기 CPU를 100%까지 사용했다. 컨테이너를 다시 시작하면 몇 분 동안만 괜찮아졌다가 같은 문제가 다시 생겼다. 원인은 안의 `welcome_email__runs` 기록 하나였다.
그 기록의 `next_welcome_email_automated_email_id` 값이 실제로 존재하지 않는 이메일을 가리키고 있어서, 가 환영 이메일 처리를 끝내지 못하고 계속 다시 시도했다. `3 /path/to/ghost.db "UPDATE welcome_email__runs SET next_welcome_email_automated_email_id=NULL;"` 명령으로 해당 값을 비우자 바로 CPU 사용량이 내려갔다. 다시 시작은 필요 없었다.
를 쓰는 설정에서 더 자주 생기는 문제인지, MySQL 설정에서도 생기는지는 아직 분명하지 않다.
핵심 포인트
- 가 트래픽 증가 없이 CPU를 100% 사용했다.
- 컨테이너 재시작은 잠깐만 효과가 있었고 문제가 반복됐다.
- 의 `welcome_email__runs` 기록이 존재하지 않는 이메일을 가리키고 있었다.
- 잘못된 `next_welcome_email_automated_email_id` 값을 `NULL`로 바꾸자 즉시 해결됐다.
- 를 직접 수정하기 전에는 백업이 필요하다.