티스토리 뷰

문제점

새로운 프로젝트를 EC2 T2.micro로 배포했더니 2~3일 정도 지나니 뻗어버리는 문제가 생겼습니다. dump떠서 분석도 해보고 부하 테스트도 해본 끝에 메모리가 부족해 순간적인 부하를 못이기고 죽어버린다고 결론을 내렸습니다. (T3.small로 업그레이드 하고 부하 테스트를 해봤더니 장기간 버텨줌)

 

해결방법

가장 간단한 해결방법은 인스턴스 유형을 업그레이드 하는것이지만 SWAP을 사용해서 해결하기로 했습니다. 

linux swap 영역은 RAM의 용량을 모두 사용했을 때 사용되는 여유 공간으로 RAM공간이 부족 할 때 도움이 됩니다. SWAP공간은 하드디스크(SSD 포함)공간에 위치하기 때문에 RAM에 비해서는 성능이 저하됩니다.

 

 

스왑공간 할당하기

일반적으로 다음과 같이 SWAP 공간을 계산합니다.

 

물리적 RAM의 양 권장 스왑 공간
RAM 2GB 이하 RAM 용량의 2배(최소 32MB)
RAM 2GB 초과, 32GB 미만 4GB + (RAM – 2GB)
RAM 32GB 이상 RAM 용량의 1배

참고: 스왑 공간은 절대로 32MB 미만이 되지 않아야 합니다.

 

스왑 파일 생성

1. dd 명령을 사용하여 루트 파일 시스템에 스왑 파일을 생성합니다. bs는 블록 크기이고 count는 블록 수 입니다. 스왑파일의 크기는 dd 명령의 블록 크기 옵션에 블록 수 옵션을 곱한 값입니다.

 

지정한 블록 크기는 인스턴스에서 사용 가능한 메모리 보다 작아야 합니다. 그렇지 않으면 'memory exhausted' 오류가 발생합니다.

$ 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

 

7. 파일 끝에 다음 줄을 새로 추가하고 파일을 저장한 다음 종료합니다.

/swapfile swap swap defaults 0 0

 

reference

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함