EC2 Ubuntu Server 프리티어에서 Jenkins를 설치하고 빌드 할때마다 멈추는 현상이 발생했습니다.
검색 결과 메모리 부족라는 걸 알게 되었고 Swap 메모리 할당으로 해결했습니다.
Swap 메모리란 ?
RAM 용량이 부족할 경우 HDD의 일부를 RAM 처럼 사용하는 것입니다.
이걸 사용해서 RAM 용량이 부족하여 시스템에 문제가 생기는 일을 방지할 수 있습니다.
Swap 공간 크기 계산
AWS EC2 에서 아래와 같이 권장 스왑 공간을 제공하고 있습니다.
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://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-memory-partition-hard-drive/
https://aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-memory-swap-file/
'AWS' 카테고리의 다른 글
Mac에서 AWS EC2 Ubuntu GUI 접속하기 (0) | 2021.11.02 |
---|