DevBoi

[AWS] EC2 메모리 이슈분석 및 Swap memory 설정 본문

Infra/[AWS]

[AWS] EC2 메모리 이슈분석 및 Swap memory 설정

HiSmith 2024. 1. 25. 22:51
반응형

1) 배경

EC2가  자꾸 죽었다. 

프리티어를 문제없이 사용하다가, 특정 Docker 컨테이너 2개를 띄운 EC2가 자꾸 죽는것을 볼수있었다.

귀찮아서 미루다가 분석을 해보기로했다.

 

2) 분석

aws의 ec2프리티어였다. 사실 서버 인프라를 확장하면 된다.

그래서 운영이나 회사에서는 발생하지않았던, 새로운 경험이다.

적은 서버 스펙의 서버가 자꾸 죽을때 사용하면 좋을 기술 같다는 생각이 들은겸 리눅스 공부할겸 분석을 해보기로했다.

 

3) 문제 찾기

 

3-1) 시스템 로그 보기

별다른게 없었다.

시스템 로그는 부팅 중이나, 부팅후의 로그를 볼수있다. 부팅과정에서 제대로 안된다면 확인할때 유용하다.

 

3-2)  인스턴스 스크린샷 확인

서버가 기동중에 이유없이 다운되는 거기 때문에

인스턴스 스크린샷을 확인한다. 메모리 이슈로 확인 된다.

 

 

4) 원인 분석

이제 원인을 분석한다.

분석할건 없다 oom이니까 그냥 메모리를 늘려주면된다.

 

5) 개선 

메모리 부족이여서 사실 증설이 답이긴하다. 리눅스는 Swap 메모리를 지정할 수있어, 해당 메모리를 지정해서 문제를 해결한다.

 

 

Swap 메모리란?

Ram이 부족할 경우 HDD의 일정공간을 마치 Ram 처럼 사용하는 것이다.

그래서 RAM을 증설한것처럼 (HDD의 일부를 메모리로 사용하기 때문에 ) 효과를 준다.

즉, 메모리가부족하면 디스크 공간을 이용해서 메모리 공간을 대체하는 것이다.

 

1) 메모리 확인

 

 

일단 현재 문제가있는 ec2이다. 해당 EC2로 메모리 관련 확인을 할 수 있다.

Swap되는 메모리 사용량이 없다. 하여 해당 공간을 잡아주고 다시 확인 해주면, 프리티어에서도, 혹은 작은 서버에 대한 스펙에 대해서도 메모리를 늘린 효과를 적용시킬수 있다.

간단하게 보면, 총 949Mi이고, 사용중인건 184MI 이다.

 

2) 메모리 할당

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

 

스왑 파일에 대한 읽기 및 쓰기 권한을 업데이트합니다.

 sudo chmod 600 /swapfile

 

Linux 스왑 영역을 설정한다.

sudo mkswap /swapfile

 

스왑 공간에 스왑 파일을 추가하여, 스왑 파일을 즉시 사용할 수 있도록 한다.

sudo swapon /swapfile

 

 

절차가 성공했는지 확인한다.

 

 

 

/etc/fstab 파일을 편집하여 부팅시 파일을 활성화한다.

해당을 하지않으면 부팅시에 또 원복된다.

아래와 같이 내용을 수정하고 저장한다.

sudo vi /etc/fstab

 

다시 메모리를 확인하면, swap 메모리 영역이 2기가로 잡혀있는 것을 볼 수 있다.

 

일단, 이렇게 하고 메모리에 대한 부분 때문에 서버가 뻗는 경우를 줄어드는지 모니터링을 하고 

추가 스터디를 진행해보자

반응형

'Infra > [AWS]' 카테고리의 다른 글

[Aws] Https 인증서 세팅하기  (0) 2024.04.05
[AWS] RDS too many Connection 오류  (0) 2024.02.03
[AWS] EC2 장애 반복  (0) 2024.01.06
[AWS] Mariadb 한글 인코딩 이슈  (1) 2023.10.07
[AWS] Mariadb encoding 오류  (1) 2023.10.02