-
[AWS] EC2 인스턴스 행(hang) 현상 & 스왑메모리 할당IT/삽질 2024. 1. 4. 23:28
아.. 정말 하루 종일 삽질했다..
AWS 프리티어 요금제 가입해서 테스트 용도의 인스턴스를 생성해서 사용 중이다.
요즘 서버 인프라 자동 구성을 위해 오픈소스인 rundeck 을 알아보기 위해서 서버에 설치해봤다.
로컬 PC에서 ssh 로 ec2 서버로 접속해서 사용하는데..
rundeck 서비스를 기동하니까 갑자기 버벅 거린다.
어라??
그리고 행 걸린듯 먹통이다.
ssh 접속을 종료하고 다시 들어가봐도 행 걸려 있기는 마찬가지다.
우와.. 미치겠다..
결국은 ec2 대시보드로 가서 인스턴스를 '중지' 후 다시 '시작' 했다.
접속이 되자마자 바로 top 명령어를 날려보니 rundeck 이 cpu 를 엄청 잡아 먹고 있다...;;
얼릉 kill -9 를 날리고 프로세스를 죽이니.. 다시 cpu는 평온해졌다...;;
아니.. 이넘의 오픈소스 사양이 어떻길래...
내가 사용하고 있는 t2.micro 는... 1 vCPU... 1GB RAM 인데...
이넘의 rundeck 은 2 CPU 에 4GM RAM 을 요구사항을 가지고 있드라... 이러니 당연히 뻗어버리지... ㅠㅠ
그리고 m3.medium 이상을 얘기하네...
하지말자... ㅠㅠ
생각해보니 윈도우에서 가상메모리 설정해서 부족한 물리 메모리 영역을 확보할 수 있었는데.
리눅스에도 그런 기능이 있다. 바로 스왑메모리인데.
아까 top 으로 봤을 때 메모리는 절반 정도 사용했지만.
권장이 4GB 이다 보니 CPU 로 부하가 가서 피크치지 않았나 싶어 스왑메모리를 설정해보기로 했다.
메모리 사용현황을 알아보려면 free 명령어로 확인 가능하다.
t2.micro 에서 할당받은 1GB가 Mem 영역에 노출되어 있고, 스왑메모리는 할당하지 않았기 때문에 Swap 영역은 0 으로 보인다.
이제 아래 순서대로 작업을 진행 하면 된다.
- 스왑 파일 생성
- 스왑 파일 권한 설정
- 스왑 영역 설정
- 스왑 영역 활성화/비활성화
스왑 파일 생성
sudo fallocate -l 2G /swapfile
스왑 파일 권한 설정
- 스왑 파일 생성하면 기본적으로 644 권한으로 생성이 되는데, '스왑 영역 설정' 시 mkswap 명령어 수행하면 안전하지 않다는 오류가 나온다.
더보기/* 기본 swapfile 정보 */
-rw-r--r--. 1 root root 2147483648 Jan 4 23:41 /swapfile
/* mkswap 명령어 수행 시 아래와 같이 가이드를 준다. */
insecure permissions 0644, fix with: chmod 0600 /swapfile
- 따라서 사전에 권한을 600 으로 변경한다.
sudo chmod 600 /swapfile
스왑 영역 설정
- mkswap 명령어는 지정한 파일이나 공간에 스왑 공간을 설정하도록 하는 명령어이다.
sudo mkswap /swapfile
스왑 영역 활성화/비활성화
- 활성화는 swapon 명령어로, 비활성화는 swapoff 명령어로 수행한다.
sudo swapon /swapfile sudo swapoff /swapfile
스왑을 설정하고 메모리 정보를 보면 2GB 로 할당된 것을 확인할 수 있다.
자. 이제 다시 rundeck 을 기동하고 top 으로 보자.
어?? 어??
또 CPU 가 폭발하려고 한다.... 죽여여 하나... ㅠㅠ
그런데... 수치가 줄어든다... 오...
대박 !! 살았다!!!
얼릉 rundeck 웹 콘솔에 접속해본다!!!
음... 뜨긴 하는데... 에러를 뱉네....
뭐... 이건 또 다른 문제니까... 일단 서비스 정상 수행한 걸 위안 삼자^^
참고
https://velog.io/@wndbsgkr/EC2에서-메모리가-부족할-땐-가상-메모리-기법을
'IT > 삽질' 카테고리의 다른 글
[filezilla] root 계정으로 ftp 접속하기 (3) 2024.03.04 [OCI] 인스턴스 삭제 후 재생성하기 (1) 2024.02.12 [Redis] 맥북에 redis 설치하기 (0) 2023.11.15 [SpringBoot] @RequestBody, @ResponseBody 어노테이션 (0) 2023.10.31 [SpringBoot] Spring Security, custom login 반응없음 (1) 2023.05.09