[EC2] Swap 메모리 설정(메모리 늘리기, CPU 부하 줄이기)

rara_kim·2023년 1월 20일
0

AWS

목록 보기
1/1

EC2 부하 문제

실전 프로젝트를 진행하던 중 점점 코드량이 늘어나고, 프론트에서 API 요청 횟수가 늘어감에 따라 개발중이던 코드에서 에러도 여럿 발생하면서 서버가 터지는 일이 빈번하게 발생하기 시작했다.

처음엔 EC2를 중지시켰다가 다시 시작하고 했는데, 서버가 터지는 횟수가 늘어나기 시작했고 그 간격도 짧아지기 시작했다.
또, EC2를 다시 시작하는 경우 포트포워딩(80 -> 8080)을 매번 다시 해주어야 했기에 여간 번거로운게 아니었다.
(잠을 자다가도 서버가 터졌다는 연락이오면 비몽사몽한 상태로 서버를 재가동 시켜야 했다...)

현재는 수익성을 목표로 한 프로젝트가 아니기에 프리티어를 사용중인데, 구글링을 해보니 프리티어의 1GB 메모리로는 감당이 안되는 경우 CPU 사용률이 급격하게 증가해 서버가 퍼지는 터져버리는 일이 종종 있다고 한다...




Swap 메모리 설정

Swap 메모리란?

스왑 메모리란, 실제 메모리 Ram이 가득 찼지만 더 많은 메모리가 필요할 때 디스크 공간을 이용하여 부족한 메모리를 대체할 수 있는 공간을 의미한다.
실제 디스크 공간을 메모리처럼 사용하는 개념이기 때문에 가상 메모리라고 할 수 있다.

Swap 메모리 설정

AWS 공식 사이트에서는 EC2 인스턴스에서 스왑 공간으로 사용할 메모리를 할당하는 방법을 안내해주고 있다.

1️⃣ 스왑 파일 생성

dd 명령을 사용하여 루트 파일 시스템에 스왑 파일을 생성한다.
bs는 블록 크기이고 count는 블록 수, 스왑 파일의 크기는 dd 명령의 블록 크기 옵션에 블록 수 옵션을 곱한 값이다. 이러한 값을 조정하여 원하는 스왑 파일 크기를 결정한다.(나의 경우 디스크 4GB를 할당해 주었다.)

$ sudo dd if=/dev/zero of=/swapfile bs=128M count=32

2️⃣ 스왑 파일의 읽기 및 쓰기 권한 업데이트

$ sudo chmod 600 /swapfile

3️⃣ Linux 스왑 영역을 설정

$ sudo mkswap /swapfile

4️⃣ 스왑 공간에 스왑 파일 추가

$ sudo swapon /swapfile

5️⃣ 프로시저 확인

$ sudo swapon -s

6️⃣ /etc/fstab 파일을 편집하여 부팅 시 스왑 파일 시작

// 편집기에서 파일을 열어준다.
$ sudo vi /etc/fstab

// 파일 끝에 아래의 내용을 추가하고 파일을 저장한다.(/포함)
/swapfile swap swap defaults 0 0

7️⃣ 메모리 확인 명령어로 결과 확인

$ free -m

명령어를 입력하면 Swap: 4095을 확인할 수 있다!
부디 이것으로 서버가 터지는 일이 더이상 발생하지 않기만을 바래본다...🥹



📚참고자료
AWS 공식사이트

profile
느리더라도 꾸준하게

0개의 댓글