리눅스 스왑(Swap) 메모리 이해하기

리눅스에서 free -h로 메모리 상태를 확인해보면 Swap 이라는 영역의 메모리가 별도로 확인된다. 윈도우에는 없는 개념이라 처음보면 생소할 수 있지만 알아두면 좋다.

Swap 이란?

스왑(Swap)은 바꾸다 라는 뜻인데 리눅스에서는 메모리(RAM)에 있던 데이터를 디스크의 스왑 공간으로 옮기고 다시 필요하면 되돌리는 동작을 의미한다.

RAM이 꽉차서 운영체제가 정상적으로 작동하기 어려운 상황이 되면, 리눅스는 지금은 당장 필요하지 않은 데이터를 골라 디스크의 Swap 영역으로 옮긴다. 그렇게 하면 RAM에 그만큼의 여유 공간이 생긴다.

쉽게 말해 RAM 과 별개로 디스크 영역에서 RAM의 데이터를 잠시 옮겨두는 백업용 RAM 이라고 볼 수 있다.

Swap은 RAM 안에 포함되나?

Swap이 RAM의 일부인가? 라고 헷갈릴 수 있는데 그렇지 않다. RAM과 Swap은 별개의 공간이다. RAM은 물리적인 메모리 공간이고 Swap은 디스크의 일부 공간을 메모리처럼 사용하는 곳이다. HDD나 SSD의 일부를 Swap으로 사용한다.

RAM 16GB 면, Swap 2GB 이런 식으로 구성되고, 서버 스펙은 16GB지만 마치 18GB의 메모리를 사용하는 것과 비슷한 효과를 낼 수 있다. 물론 디스크는 메모리에 비해 매우 느리기 때문에 보조 수단일 뿐 완전히 18GB 메모리 처럼 쓰는 건 아니다.

Swap이 사용되는 시점

리눅스는 RAM 사용 상황을 보면서 RAM이 꽉 차거나 RAM에 오랫동안 사용되지 않은 데이터가 있을 때 스왑으로 옮긴다. 그러니까 메모리 부족으로 메인 서비스가 죽어버릴 위기가 왔을 때 Swap이 살려줄 수가 있다. 일종의 안전장치로서 동작한다.

댓글 남기기