개요
EC2 인스턴스를 프리티어로 사용하는데 메모리가 너무 적어서 터지곤했다.
이것을 돈을쓰지않고 해결하는 방법을 찾다가 리눅스의 swap memory 방법이 있다는 것을 발견함
swap memory가 뭔지 정리해보자
swap space란
물리적 메모리를 대체하는 하드 디스크의 공간
- 운영체제에서 사용 가능한 것보다 더 많은 메모리가 필요한 경우 데이터 저장을 위한 버퍼 역할을 함

- Swapping : 실제 메모리와 가상 메모리 간의 정보 교환을 말함
- Secondary Memory의 일부 디스크가 스와핑에 사용되므로 이 공간을 "스왑 메모리"라고 부름
- 가상 메모리는 실행중인 프로세스에서 사용하는 디스크 공간과 RAM의 조합
- 스왑 메모리는 하드 디스크에 있는 가상메모리의 일부임
- RAM을 사용할 때 이 스왑 메모리를 사용할 수 있음
어따 쓰냐
- 머신에서 사용할 수 있는 메모리 공간보다 실행해야 하는 애플리케이션들이 필요로 하는 공간이 이 메모리보다 많이 필요할 때 활용
- hibernation
최대 절전모드, 컴퓨터 상태를 유지하면서 전원을 끄는 것
- RAM의 내용을 하드 디스크나 기타 비휘발성 저장소에 저장해야 하므로 스왑 메모리가 필요
-
무거운 애플리케이션 사용할 때 할당 받은 RAM이 금방 소진 될 수 있다
-> 스왑메모리를 사용해 시스템의 안정성 높일 수 있음
-
오작동하는 프로그램이 RAM을 소진하는 경우 스왑 공간이 도움이 됨
얼만큼 설정해주어야 하지
Swap memory
컴퓨터 시스템에서 주메모리(RAM)의 부족으로 인해 발생하는 문제를 해결하기 위해 사용되는 보조 메모리
-
주 메모리가 부족한 상황에서 운영체제는 일부 데이터를 주 메모리에서 임시로 Swap 메모리로 옮겨놓음
-
Swap 메모리는 하드 디스크의 일부를 할당하여 가상의 메모리 공간으로 사용함
-
주 메모리보다 느리지만 용량이 크기 때문에 필요에 따라 더 많은 데이터 저장 가능
-
즉, 스왑 메모리는 주 메모리의 확장으로 간주할 수 있음
Swap memory 주요 목적
- 물리적 메모리 부족 보완
- 주 메모리가 모자라서 추가적인 데이터를 저장할 수 없을 때, 운영체제는 가장 오래 사용하지 않은 데이터나 프로세스를 Swap 메모리로 이동시켜 공간을 확보
- 메모리 압력 완화
- 프로그램 실행 도중 메모리 사용량이 갑작스럽게 증가할 경우, Swap 메모리를 활용하여 메모리 압력을 완화
- Hibernation
- 현재 실행 중인 시스템 상태를 디스크에 저장하고 나중에 다시 불러올 수 있도록 함. 이런 상태에서 Swap 메모리가 사용
그러나 Swap 메모리가 필요한 경우는 주로 주 메모리가 부족할 때 발생
- 메모리 부족 상태에서 Swap 메모리를 사용하면 성능 저하가 발생할 수 있음
-> 디스크가 RAM보다 훨씬 느리기 때문에 Swap 메모리에서 데이터를 읽고 쓰는 속도가 느리기 때문
충분한 주 메모리를 가지는 것이 시스템 성능 향상을 위해 중요
- 스왑 메모리의 크기는 운영체제의 설정에 따라 다르며, 일반적으로 시스템의 물리적 메모리(RAM) 크기의 일부를 기준으로 자동으로 설정
정리
- RAM 부족할 때 하드디스크의 일부를 메모리로 가져다 쓴다
- 운영체제 별 swap space 크기 기준이 있다
출처