아마존 리눅스 2023 서버 메모리 늘리는 방법을 소개합니다. 현재 저는 AWS 프리티어를 사용하고 있고 프리티어는 1GB의 메모리를 제공해 줍니다. 사용량과 블로그가 점점 많아지면서 메모리 부족으로 서버다운현상이 자주 발생되고 있습니다. 아직까지는 유의미한 트래픽이 나오고 있지 않은 상황이므로 서버의 플랜을 업그레이드 하는 방법보단 메모리 스왑으로 조금 더 버텨보고자 합니다. 저와 같은 현상을 겪고 계시다면 이 글이 도움이 되실겁니다.
[함께 참고하면 좋은 글 추천]
- 아마존 리눅스 2023 서버 용량 늘리는 방법 (프리티어)
- 서버 하나에 워드프레스 추가 설치 및 운영하는 방법 (아마존 리눅스 2023)
- 워드프레스 FTP 자격증명 해결방법 (아마존 리눅스 2023)
- 워드프레스 고유주소 변경 에러 해결방법(아마존 리눅스 2023)
- 아마존 리눅스 2023 SSL 인증서 발급 방법
1. 아마존 리눅스 2023 프리티어 서버 메모리 확인 방법
서버의 메모리를 확인하기 위해 Termius나 Xshell등의 프로그램을 사용하여 SSH에 접속한 후 아래의 명령어를 입력해 줍니다.
free -h
위의 명령어를 입력하면 아래 그림과 같이 현재 메모리가 949mi 약 1GB라는것을 확인할 수 있습니다. 1GB의 메모리로는 정상적인 작업이 힘들듯 합니다. 워드프레스에 플러그인을 설치하거나 또는 글을 작성하다 이미지를 업로드 하다가도 서버가 다운되는 일이 자주 발생되고 있습니다.
위 그림의 각각의 코드가 뜻하는 바는 아래의 표를 참고해 주세요!
total | 현재 설치된 총 메모리의 크기 / 스왑된 총 크기 |
used | total 메모리에서 free와 buff / cache 크기를 제외한 값 / 현재 사용중인 스왑 크기 |
free | total 메모리에서 used와 buff / cache 크기를 제외한 크기로 현재 여유 메모리 / 현재 사용되지 않은 스왑 크기 |
shared | 여러 프로세스에서 공유할 수 있는 메모리 |
buff / cache | 버퍼와 캐시가 사용중인 메모리 |
availavle | 새로운 프로세스에서 할당 가능한 메모리 |
2. 아마존 리눅스 2023 서버 메모리 늘리는 방법
앞서 계속 스왑이라는 단어를 썼는데 이는 현재 EC2 인스턴스 서버의 메모리를 모두 사용중이여서 여유공간이 없으므로 실제 디스크의 용량을 이용하여 부족한 메모리를 대체할 수 있는 가상의 공간을 만드는것을 의미합니다. [아마존 리눅스 2023 서버 용량 늘리는 방법 (프리티어)]을 통해 이미 부족한 서버 용량을 늘렸기 때문에 디스크 용량은 여유가 있습니다.
일반적으로 메모리 스왑을 진행할때 스왑 공간은 아래의 표와 같이 계산합니다.
메모리 크기 | 권장 스왑 공간 |
---|---|
현재 메모리(RAM)가 2GB 이하 일때 | 현재 메모리 용량의 2배(단, 최소 32MB 이상 이어야 함) |
현재 메모리(RAM)가 2GB 초과 ~ 32GB 미만 일때 | 4GB + (현재 메모리 크기 – 2GB) |
현재 메모리(RAM)가 32GB 이상 일때 | 현재 메모리 용량의 1배 |
이제 서버 메모리 늘리는 방법을 차근차근 알아보겠습니다.
2-1. dd 명령어를 통한 swap 메모리 할당
sudo dd if=/dev/zero of=/swapfile bs=128M count=16
설명: ‘dd’ 는 데이터 복사 및 변환을 수행하는 명령어 이며 ‘/dev/zero’ 명령어는 무한한 0바이트 스트림을 생성하는 특수 장치 파일입니다. 즉 0으로 채워진 테이터를 생성하는 명령어 입니다.
‘of=/swapfile’ 명령어의 ‘of’는 출력 파일을 나타내며 ‘/swapfile’ 은 생성될 스왑 파일의 경로와 이름을 지정하는 명령어 입니다.
‘bs=128M count=16’ 명령어의 ‘bs’는 블럭을 나타내며 이는 128M 블럭 크기로 스왑파일을 16개 만들라는 의미입니다.
128M * 16개 = 2048M로 2GB에 해당합니다.
2-2. swap 파일에 대한 권한 업데이트
sudo chmod 600 /swapfile
설명: swap 파일에 대한 읽기 및 쓰기 권한을 업데이트 합니다.
2-3. swapfile 초기화 및 스왑 영역 설정
sudo mkswap /swapfile
설명: ‘mkswap’ 명령어는 스왑 파일을 생성하고 초기화하는 역할을 하고, ‘/swapfile’ 는 초기화 하려는 스왑 파일의 경로와 이름을 나타냅니다. 이 경로는 2-1. dd 명령어를 통한 swap 메모리 할당에서 생성한 스왑파일의 경로와 일치해야 합니다.
즉, 선택한 스왑파일(/swapfile)을 초기화 하는 명령어로 스왑파일을 시스템 메모리가 부족한 상황에서 사용할 수 있게 하는 준비 단계 입니다.
2-4. 스왑파일 사용 설정
sudo swapon /swapfile
설명: ‘swapon’ 은 스왑 공간을 활성화하고 관리하는 명령어로 스왑 공간에 스왑 파일을 추가하여 스왑 파일을 즉시 사용할 수 있도록 합니다.
2-5. 메모리 스왑 성공여부 확인
sudo swapon -s
설명: ‘-s’ 는 현재 활성화된 스왑 공간에 대한 정보를 요청하는 옵션입니다. 즉 현재 시스템의 스왑 상태를 확인할 때 사용하는 명령어 입니다.
아래 그림처럼 swapfile의 size가 2GB로 할당된것을 확인할 수 있습니다.
2-6. /etc/fstab 파일 편집을 통한 스왑 파일 활성화
sudo vi /etc/fstab
설명: /etc/fstab는 파일시스템의 정보를 저장하는 곳으로 파티션 변경이나 디스크를 추가했을 경우 이 파일에 등록을 해야 자동으로 마운트가 가능합니다.
/swapfile swap swap defaults 0 0
설명: vi 편집기로 /etc/fstab 파일에 들어간 후 위의 코드를 맨 끝에 추가한 뒤 저장후 편집기를 종료합니다.
2-7. 최종 서버 메모리 확인
free -h
설명: 위의 명령어로 스왑 메모리가 잘 적용되었는지 최종 확인 합니다. 아래 그림처럼 나온다면 정상적으로 메모리 스왑이 적용된 것입니다.
아마존 리눅스 2023 서버 메모리 늘리는 방법을 알아보았습니다. 메모리 스왑을 성공적으로 적용했기 때문에 서버의 다운이 조금은 줄어들 것입니다.
위의 방법은 아마존의 공식 홈페이지에서도 확인이 가능합니다.
스왑 파일을 사용하여 Amazon EC2 인스턴스에서 스왑 공간으로 사용할 메모리를 할당하는 방법은 무엇입니까?
https://repost.aws/ko/knowledge-center/ec2-memory-swap-file