일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 컬렉션
- 인텔리제이
- 루프
- 자동형변환
- Scanner
- 박싱
- 메소드
- Jenkins
- maven
- 콜렉션
- unboxing
- 언박싱
- suvlet
- 클래스
- 제너릭
- 싱글톤
- Java
- dependency
- Short
- 빌드
- 무한
- start.spring.io
- https://start.spring.io
- boxing
- 싱글턴
- 제네릭
- 내장객체
- bootstrap
- 스프링
- wrapper
- Today
- Total
Developer Gonie
11. 젠킨스, AWS EC2 프리티어(t2.micro) 에서 빌드하면 메모리 부족으로 서버가 터져버리는 현상 해결 본문
11. 젠킨스, AWS EC2 프리티어(t2.micro) 에서 빌드하면 메모리 부족으로 서버가 터져버리는 현상 해결
이대곤 2022. 11. 6. 15:34이번 글 작성의도
AWS EC2 프리티어에서 인스턴스 유형 t2.micro 는 RAM이 1GB(GiB) 이다. 이 용량은 매우 부족한데, 이 때문에 젠킨스에서 플젝을 빌드하면 엄청 버벅이거나 아예 멈춰버리는 현상을 보였다. 그 때마다 인스턴스를 중지시키고 다시 실행시키곤 했는데 아래는 인스턴스 유형의 업그레이드 없이 그것을 해결하는 방법이다.
스왑(swap)공간이란?
스왑 공간 (Swap space)이란 리눅스에서 물리적 메모리 (RAM)의 용량이 가득 차게될 경우 사용되는 여유 공간을 말합니다. 즉, 시스템이 처리하고 있는 데이터를 저장할 RAM이 충분하지 않을 때 스왑 공간에 이 데이터를 기록한다는 말입니다.
스왑 공간을 이용하면 RAM의 용량을 키운 효과를 얻을 수 있습니다.
AWS EC2 인스턴스에서 스왑(swap)공간을 할당시 주의할점
"하드 디스크의 파티션을 사용하여 Amazon EC2 인스턴스에서 스왑 공간으로 사용할 메모리를 할당하는 방법은 무엇인가요?"
아래는 AWS EC2에서 스왑 공간을 부여할 때 물리적 RAM 크기별 권장되는 스왑공간에 대한 표이다. 현재 내가 사용중인 t2.micro 는 물리적(시스템) RAM의 크기가 1GiB 이므로 맨 첫번째 경우에 해당하며 이에따라 권장되는 스왑 공간은 최대 2GiB 이다.
스왑공간을 생성하기전 상태 확인
- 아래의 결과에서 현재 Swap 공간의 크기가 0 인것을 알 수 있다.
free -h
1. dd 명령을 사용하여 루트경로에 스왑 파일 생성
sudo dd if=/dev/zero of=/swapfile bs=128M count=16
bs : 블록의 크기
count : 블록 수
스왑 파일의 크기 = 블록의 크기 * 블록의 수
즉, 128M * 16 = 2GB이라서 위와 같이 입력한다. 스왑 파일의 크기가 2GB가 되는 것이다.
swapfile 이름을 가진 이 파일은 최상위 경로에 생성된다.
2. 스왑 파일의 읽기 및 쓰기 권한 업데이트
sudo chmod 600 /swapfile
3. 스왑 영역을 위에서 만든 파일로 설정
sudo mkswap /swapfile
4. 스왑 공간에 스왑 파일을 추가하여 스왑 파일을 즉시 사용
sudo swapon /swapfile
5. 프로시저가 성공적인지 확인
sudo swapon -s
/ 경로의 swapfile 파일에 2GB가 할당된 것을 확인할 수 있다.
6. /etc/fstab 파일을 편집하여 부팅 시 스왑 파일이 시작되게 하기
sudo vi /etc/fstab
맨 아래줄에 아래 줄 삽입하고 저장하기
/swapfile swap swap defaults 0 0
8. 스왑공간이 할당된 것 확인하기
free -h
참고 : https://gksdudrb922.tistory.com/196
'개인 공부 > (CI | CD) Jenkins' 카테고리의 다른 글
13. 젠킨스, 톰켓에서 발생하는 에러 확인하기 위한 catalina.out 확인방법 (0) | 2022.11.06 |
---|---|
12. 젠킨스, 전전 단계에서 생성해둔 Maven project 빌드 (0) | 2022.11.06 |
10. 젠킨스, 새로운 Item 추가 - Maven project 생성 (0) | 2022.11.06 |
9. 젠킨스, jenkins관리 - Credentials(자격증명) 등록 (0) | 2022.11.06 |
8. 젠킨스, Jenkins관리 - 플러그인 관리 - 필요 플러그인 설치 (0) | 2022.11.06 |