EC2 Ubuntu Server 프리티어에서 Jenkins를 설치하고 빌드 할때마다 멈추는 현상이 발생했습니다.

검색 결과 메모리 부족라는 걸 알게 되었고 Swap 메모리 할당으로 해결했습니다.

 

Swap 메모리란 ?

RAM 용량이 부족할 경우  HDD의 일부를 RAM 처럼 사용하는 것입니다. 

이걸 사용해서 RAM 용량이 부족하여 시스템에 문제가 생기는 일을 방지할 수 있습니다.

 

Swap 공간 크기 계산

AWS EC2 에서 아래와 같이 권장 스왑 공간을 제공하고 있습니다.

 

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

Swap 메모리 할당 방법

1. dd 명령을 사용해서 루트 파일 시스템에 스왑 파일을 생성합니다

bs 는 블록 크기, count는 블록 수 입니다. 스왑 파일의 크기는 bs * count 입니다.

 

아래 dd 명령어의 스왑 파일은 프리티어 권장 스왑 공간인 2GB(128M x 16) 입니다.

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

 

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
#fstab 파일에 아래 줄을 추가 후 저장, 종료합니다
/swapfile swap swap defaults 0 0

 

* 참고

https://tape22.tistory.com/22

 

EC2 프리티어에서 Jenkins가 돌아가지 않는 문제 해결하기

❗️앗 프리티어 사양이 코딱지다~! 🥲 프리티어 계정은 램이 1GB입니다. jenkins를 돌리기엔 매우 나약나약한.....나약한.....그래서 처음에 jenkins 설정을 세팅하고 빌드를 했는데 ec2 터미널이 먹통

tape22.tistory.com

https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-memory-partition-hard-drive/

 

하드 드라이브의 파티션을 사용하여 Amazon EC2 인스턴스의 스왑 공간으로 메모리 할당

하드 드라이브의 파티션을 사용하여 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 스왑 공간으로 사용할 메모리를 할당하려고 합니다. 어떻게 해야 합니까?

aws.amazon.com

 

https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-memory-swap-file/

 

스왑 파일을 사용하여 Amazon EC2 인스턴스의 스왑 공간으로 메모리 할당

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

aws.amazon.com

 

'AWS' 카테고리의 다른 글

Mac에서 AWS EC2 Ubuntu GUI 접속하기  (0) 2021.11.02

+ Recent posts