EC2를 통해 Spring boot 프로젝트 서비스 배포를 하는 과정에서 겪은 EC2 CPU 사용률 100% 오류 해결 과정 설명입니다.
작년 프로젝트를 계획하여 백엔드 및 프론트엔드를 만들었고 AWS의 EC2 검퓨터를 빌려 첫 테스트 배포를 진행하였습니다.
종종 제 EC2는 CPU사용률이 100%가 되었으며 ssh 접속이 불가하여 aws를 통해 중지후 재시작을 통해 접속하였습니다.
공부과정에서 War, Jar 파일을 잠시 배포해 본적은 있으나 24시간 서비스를 배포하는 과정에서는 여러 문제들이 생겼습니다. 그 중에 이번 문제는 원인을 알 수 없어 난항을 겪었던 문제입니다.
메모리 사용 과다로 인한 문제였습니다.
ubuntu 환경에서 top 명령어를 통해 현재 실행중인 프로세스들을 확인하였습니다. 위 사진에는 java 프로세스가 메모리를 29.7% 사용하고 있는것을 확인 하실 수 있으며 종종 mysql또한 약 30%의 사용률을 보이고있습니다.
제 EC2 컴퓨터의 RAM은 1GB이므로 메모리 사용률 과다로 인해 알수없는 문제가 발생해 cpu 사용률이 100%가 된것으로 판단됩니다. ( 정확한 컴퓨터공학적 이유는 찾지 못하였습니다. )
스왑영역을 생성하여 해결할 수 있었습니다.
아래 블로그를 참고하여 스왑영역을 설정하였습니다.