예전에는 모든 리눅스 설치에 스왑 공간이 필수였습니다. 하지만 요즘 PC는 8GB 이상의 RAM을 기본으로 갖추고 있어서, 별도의 스왑 공간이 여전히 필요한지 의문이 드는 것이 당연합니다. 우분투를 사용하고 있다면 과연 스왑이 필요할까요?
많은 사람이 "필요하다"고 답하는가 하면, "불필요하다"고 답하는 사람도 있습니다. 물론 각자 나름의 근거가 있습니다. 결론부터 말하자면, 스왑의 필요 여부는 컴퓨터를 어떻게 사용하느냐에 따라 달라집니다.
참고: 아래 내용은 우분투를 기준으로 설명하지만, 대부분의 리눅스 배포판에 그대로 적용할 수 있습니다.
스왑의 두 가지 형태
대부분의 최신 리눅스 배포판과 마찬가지로, 우분투에서도 두 가지 방식의 스왑을 사용할 수 있습니다. 전통적인 방식은 전용 파티션 형태입니다. 보통 OS를 HDD에 처음 설치할 때 함께 설정되며, 우분투 시스템 파일이나 사용자 데이터와는 별개의 영역에 존재합니다.
좀 더 현대적인 방식은 스왑 파일 형태입니다. 이 파일은 OS 파일들 사이, 즉 사용자 데이터 옆에 위치합니다.
스왑을 파일로 운영하면 파티션을 다룰 필요 없이 손쉽게 비활성화하거나 삭제해 공간을 회수할 수 있습니다. 새 스왑 파일을 처음부터 만들거나, 서로 다른 볼륨에 스왑을 추가하는 것(두 번째, 세 번째 스왑 파일 등)도 훨씬 간편합니다.
최대 절전 모드를 사용한다면 스왑은 필수
먼저 확실히 짚고 넘어갈 부분이 있습니다. 최대 절전 모드(hibernation)를 사용한다면 스왑이 반드시 필요합니다. 게다가 크기도 아무렇게나 정하면 안 되고, PC의 RAM 용량과 같거나 그 이상이어야 하며, 거기에 몇 GB를 더해야 합니다.
우분투에 최대 절전 모드를 지시하면 종료하기 전에 RAM의 모든 내용을 스왑에 저장합니다. 다음에 PC 전원을 켜면 우분투는 스왑에서 이전에 저장한 상태를 불러와 화면을 그대로 복원합니다.
RAM이 부족하다면 스왑을 추가하세요
우분투 자체나 실행 중인 앱이 PC에 장착된 RAM보다 많은 메모리를 요구한다면 스왑을 추가해야 합니다. 그렇지 않으면 RAM이 가득 찼을 때 시스템이 메모리를 확보하기 위해 "덜 중요하다"고 판단한 앱들을 강제 종료하기 시작합니다. 경우에 따라서는 시스템 전체가 크래시될 수도 있습니다.
경험상, 시스템 RAM이 8GB 미만이라면 스왑이 필요하다고 보면 됩니다.
RAM이 충분하다면 스왑 없이도 가능
반대로 RAM이 16GB를 넘고, 블렌더(Blender)처럼 무거운 프로그램을 사용하지 않으며, Kdenlive에서 4K 영상을 편집하거나 GIMP에서 여러 이미지를 동시에 다루는 작업을 하지 않는다면, 우분투가 RAM을 끝까지 다 쓰는 일은 드물 겁니다.
이런 경우라면 최대 절전 모드를 사용하지 않는 한 스왑 없이도 충분합니다. 만약 순간적으로 메모리가 더 필요해지더라도 그때 스왑 파일을 만들어 활성화하면 됩니다. 아니면 작은 스왑 파일을 상시 버퍼로 유지하고, 필요할 때 늘리는 방법도 좋은 선택입니다.
RAM 사용량을 확인하고 그에 맞게 대응하세요
결론적으로, 대부분의 사용자에게는 PC의 RAM 용량과 관계없이 만약을 대비한 작은 스왑이라도 두는 것이 권장됩니다. 스왑이 꼭 필요한 사용자에게 구체적인 크기를 일괄 추천하기는 어려운데, 역시 컴퓨터 사용 방식에 따라 달라지기 때문입니다. 다행히 우분투는 시스템에 맞는 스왑 크기 가이드를 공식적으로 제공합니다.
핵심만 요약하면 다음과 같습니다:
- 최대 절전 모드를 사용하는 경우: RAM 용량에 1~2GB를 더한 크기로 설정하세요.
- 최대 절전 모드를 사용하지 않는 경우:
htop이나 시스템 모니터 같은 도구로 일정 기간 RAM 사용량을 관찰하세요. RAM이 계속 거의 가득 차 있다면 스왑이 필요한 신호입니다. 먼저 RAM의 절반 크기로 스왑을 추가하고 문제가 해결되는지 확인하세요. 그래도 부족하면 1배, 1.5배 순으로 늘려가며 반복 조정하세요. - RAM 여유가 항상 충분한 경우: 최대 절전 모드를 쓰지 않고, 아무리 컴퓨터를 밀어붙여도 RAM이 가득 차는 일이 없으며 항상 25% 이상의 여유 RAM이 남는다면? 스왑이 굳이 필요하지 않으므로 비활성화해도 됩니다.
스왑이 필요하다고 판단했다면, 리눅스에서 스왑 사용량을 관리하는 방법을 익혀두는 것이 좋습니다. 오래된 노트북이라면 zswap을 활용하는 것도 효율적인 대안이 될 수 있습니다.