이것이 점프 투 공작소

Swap Memory란? EC2 Swap memory설정법 본문

리눅스

Swap Memory란? EC2 Swap memory설정법

겅겅겅 2022. 9. 29. 21:18

Swap Memory란?

스왑 메모리란, 실제 메모리 Ram이 가득 찼지만 더 많은 메모리가 필요할때 디스크 공간을 이용하여 부족한 메모리를 대체할 수 있는 공간을 의미합니다.

하드웨어에서 대신 사용하게되는 일종의 가상 메모리 개념이다.

속도면에서는 실제 메모리가 아닌 하드디스크를 이용하는 것이기 때문에 메모리 속도는 떨어진다.

하지만 실제 운영환경에서 스왑 메모리를 사용하는것은 좋지않습니다.

스왑메모리가 아닌 실제 메모리를 올려서 사용하는게 더 좋은 방법입니다!

 

Swap Memory 확인

리눅스에서 Swap Memory를 확인하는 명령어

$ free -h

vm에 메모리를 이거 밖에 안줬나.. 나도 쳐보고 놀랐다

리눅스 커널은 메모리에 올라와 있는 메모리 블록 중

당장 쓰이지 않는 것을 디스크에 저장하여 사용 가능한 메모리 영역을 확보한다.

 

buff/cache 메모리는 커널이 성능 향상을 위해 캐시 영역으로 사용되는 메모리를 말한다.

 

buff : 로세스가 사용하는 메모리 영역이 아닌 시스템 성능 향상을 위해 커널에서 사용하고 있는 영역

cache : 페이지 캐시의 메모리를 의미

페이지 캐시?

페이지 캐시는 처리한 데이터를 메인 메모리 영역(RAM)에 저장해서 가지고 있다가, 다시 이 데이터에 대한 접근이 발생하면 disk에서 IO 처리를 하지 않고 메인 메모리 영역의 데이터를 반환하여 처리할 수 있도록 해주는 공간

 

vm에서 정상적으로 Swap memory를 확인했으나

EC2의 우분투에서 Swap memory를 확인한 결과

왜없어

 

EC2 프리티어는 기본적으로 Swap Memory를 사용하지 않는다

그래서 EC2에는 Swap memory를 설정해주면 예상치 못한 장애를 막을 수 있다.

Swap 메모리는 통상 RAM 크기의 2배로 설정하는 것을 추천한다고 한다.

 

Swap memory 생성

1. fallocate 명령어로 원하는 크기의 파일을 만든다.

(경고가 뜬다면 swapfile을 chmod 600으로 지정해주자 )

경고가 뜬다면 swapfile을 chmod 600으로 지정해주자

2. mkswap 명령어로 swap파티션 지정

스왑파일로 지정
UUID는 그냥 가렸다..

3. swapon 명령어로 swap memory활성화

swap파일 실행!
이제 내 프리티어에도 SwapMemory가 생겼다.

4. /etc/fstab에 추가

/etc/fstab 파일은 리눅스에서 사용하는 파일시스템 정보를 정적으로 저장하고 있는 파일이며, 리눅스의 부팅시 마운트정보를 가지고 있는 파일이다, 여기 추가 해줘야 재부팅시에도 swap memory가 유효하다.

vim으로 파일을 수정하자

 

/etc/fstab파일 하단에 swapfile위치와 명령어 추가