Home Knowledge base Skyline Cloud Linux 서버에 스왑 공간 추가하는 방법 KNOWLEDGE BASE

Linux 서버에 스왑 공간 추가하는 방법

Ubuntu 22.04/24.04에서 스왑 파일을 생성하고, 영구적으로 적용하고, swappiness를 튜닝하는 정확한 단계별 가이드입니다. 메모리가 적은 VPS와 클라우드 서버에 이상적입니다.

Linux 서버에 스왑 공간 추가하는 방법

Ubuntu 22.04/24.04에서 스왑 파일을 생성하고, 영구적으로 적용하고, swappiness를 튜닝하는 정확한 단계별 가이드입니다. 메모리가 적은 VPS와 클라우드 서버에 이상적입니다.

스왑 공간이란 무엇이며 언제 필요한가?

스왑 공간은 Linux가 RAM의 오버플로(여유 공간)로 사용하는 디스크 상의 영역입니다. 물리 메모리가 가득 차면 커널은 비활성 메모리 페이지를 스왑으로 옮겨 활성 프로세스를 위한 RAM을 확보합니다. 스왑이 서버를 더 빠르게 만들어 주는 것은 아닙니다 — 디스크는 RAM보다 훨씬 느립니다 — 하지만 메모리가 부족할 때 커널의 OOM(Out-Of-Memory) 킬러가 프로세스를 갑자기 종료시키는 것을 막아 주는 안전망 역할을 합니다.

스왑은 특히 RAM이 1~4GB인 소형 VPS와 클라우드 서버에서 유용합니다. 이런 서버에서는 단 한 번의 트래픽 급증, 데이터베이스 쿼리, 또는 composer/npm 빌드만으로도 메모리가 고갈될 수 있습니다. 또한 일정량의 스왑이 존재한다고 가정하는 제어판이나 애플리케이션 스택에서도 흔히 요구됩니다.

이 튜토리얼은 Ubuntu 22.04 및 24.04 LTS를 대상으로 하지만, 사용하는 도구가 동일하기 때문에 사실상 모든 최신 Linux 배포판(Debian, Rocky, AlmaLinux)에서도 동일하게 작동합니다. 새 서버를 프로비저닝하는 경우, 이 단계들을 그대로 Skyline Cloud VPS에 적용할 수 있습니다.

1단계 — 기존 스왑 확인하기

스왑을 생성하기 전에, 이미 존재하는 스왑이 없는지 확인하세요. 두 개의 스왑 파일을 운영하는 것은 낭비이며 혼란을 초래할 수 있습니다.

sudo swapon --show

명령이 아무것도 반환하지 않으면 활성화된 스왑이 없는 것입니다. 메모리와 스왑 총량을 한눈에 확인할 수도 있습니다:

free -h

Swap 행의 총량이 0B이면 아직 스왑이 없음을 확인할 수 있습니다.

2단계 — 스왑 크기 선택하기

단 하나의 정답은 없지만, 다음 가이드라인은 서버를 위한 합리적인 출발점입니다:

RAM 권장 스왑
1 GB 2 GB
2 GB 2~4 GB
4 GB 4 GB
8 GB 이상 2~4 GB (RAM이 충분하다면 없어도 무방)

스왑은 충분한 RAM의 대체재가 되어서는 안 됩니다. 서버가 끊임없이 스왑에 의존한다면, 올바른 해결책은 메모리를 추가하는 것입니다 — 새 하드웨어를 구입하기보다 클라우드 플랜을 리사이징하면 손쉽게 해결됩니다.

3단계 — 스왑 파일 생성하기

먼저 디스크에 충분한 여유 공간이 있는지 확인하세요:

df -h /

2GB 스왑 파일을 생성합니다. fallocate 명령은 공간을 즉시 할당합니다:

sudo fallocate -l 2G /swapfile

파일 크기를 확인합니다:

ls -lh /swapfile

fallocate를 사용할 수 없거나 파일시스템이 이를 깔끔하게 지원하지 않는 경우(일부 환경에서는 완전히 기록된 파일이 필요함), 대신 dd를 사용하세요. 더 느리지만 항상 작동합니다:

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress

4단계 — 파일 보안 설정 및 포맷하기

스왑 파일은 root만 읽고 쓸 수 있어야 하며, 그렇지 않으면 그 내용이 노출됩니다. 권한을 600으로 설정하세요:

sudo chmod 600 /swapfile

이제 파일을 Linux 스왑 영역으로 표시합니다:

sudo mkswap /swapfile

스왑 레이블과 UUID를 확인하는 출력이 표시됩니다.

5단계 — 스왑 활성화하기

스왑 파일을 즉시 활성화합니다:

sudo swapon /swapfile

활성화되었는지 확인합니다:

sudo swapon --show
free -h

이제 free -hSwap 행에 2GB가 표시되어야 합니다. 스왑이 활성화되었습니다 — 하지만 다음 재부팅 전까지만 유지됩니다.

6단계 — 스왑을 영구적으로 적용하기

재부팅 후에도 스왑 파일을 유지하려면 /etc/fstab에 추가하세요. 먼저 파일을 백업합니다:

sudo cp /etc/fstab /etc/fstab.bak

tee를 사용해 스왑 항목을 안전하게 추가합니다:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

각 필드의 의미는 다음과 같습니다: 파일 경로, 마운트 지점(스왑의 경우 none), 파일시스템 유형(swap), 옵션(sw), dump(0), fsck 패스(0). 해당 줄이 올바르게 추가되었는지 확인합니다:

grep swapfile /etc/fstab

여기서의 오타는 시스템이 정상적으로 부팅되지 못하게 만들 수 있으므로, 철자와 함께 파일을 덮어쓰지 않고 >>/tee -a(추가)를 사용했는지 다시 한 번 확인하세요.

7단계 — swappiness 튜닝하기

swappiness는 커널이 데이터를 스왑으로 얼마나 적극적으로 옮기는지를 0~100 척도로 제어합니다. Ubuntu의 기본값은 60이며, 이는 데스크톱에는 적합하지만 서버에는 지나치게 적극적입니다 — RAM이 아직 사용 가능한데도 데이터를 느린 디스크로 밀어낼 수 있습니다.

현재 값을 확인합니다:

cat /proc/sys/vm/swappiness

일반적인 서버에는 10이 좋은 값입니다: RAM이 실제로 압박을 받을 때만 스왑을 사용합니다. 지금 적용합니다:

sudo sysctl vm.swappiness=10

재부팅 후에도 유지되도록 영구 설정합니다:

echo 'vm.swappiness=10' | sudo tee /etc/sysctl.d/99-swappiness.conf

파일시스템 메타데이터를 더 오래 캐시에 유지하기 위해 선택적으로 vfs_cache_pressure를 낮출 수 있습니다:

echo 'vm.vfs_cache_pressure=50' | sudo tee -a /etc/sysctl.d/99-swappiness.conf

8단계 — 재부팅 후 확인하기 (선택 사항)

설정이 재시작 후에도 유지되는지 확실히 하려면, 재부팅한 뒤 다시 확인하세요:

sudo reboot

다시 로그인한 후:

sudo swapon --show
cat /proc/sys/vm/swappiness

두 명령 모두 설정한 값을 반영해야 합니다.

스왑 제거 또는 크기 변경

스왑을 제거하려면 비활성화하고, /etc/fstab에서 해당 줄을 삭제한 다음, 파일을 제거하세요:

sudo swapoff /swapfile
sudo sed -i '/\/swapfile/d' /etc/fstab
sudo rm /swapfile

크기를 변경하려면, 위 단계를 사용해 기존 파일을 제거하고 원하는 크기의 새 파일을 생성하기만 하면 됩니다.

SSD 및 클라우드 디스크에 관한 참고 사항

최신 NVMe 및 SSD 스토리지는 스왑 쓰기를 잘 처리하며, 적절히 튜닝된 스왑 파일로 인한 약간의 마모는 무시할 수 있는 수준입니다. 클라우드 서버에서는 스왑이 RAM 업그레이드 여부를 결정하는 동안 여유 시간도 벌어 줍니다. 메모리 부족 워크로드에 대한 가장 깔끔한 장기적 해답은 더 많은 스왑이 아니라 더 많은 RAM입니다.

매니지드 클라우드 서버에서 실행하기

스왑은 빠르게 효과를 볼 수 있는 방법이지만, 건강한 서버에는 안정적인 스토리지, 스냅샷, 그리고 RAM을 필요에 따라 확장할 수 있는 여유 공간도 필요합니다. Skyline Cloud는 PDPL/NCA에 부합하는 데이터 거주 요건을 갖추고 사우디아라비아 국내(in-Kingdom)에서 운영되며, 현지 아랍어 지원과 투명한 가격을 제공합니다 — 따라서 데이터와 워크로드가 사우디아라비아 내에 머무릅니다. VPS를 비즈니스 이메일 호스팅 및 매니지드 백업과 결합하여 전체 스택을 빈틈없이 보호하세요.

VPS 및 클라우드 서버 허브에서 플랜을 둘러본 다음, Skyline Cloud 계정을 생성하고 몇 분 안에 튜닝되어 프로덕션에 바로 투입 가능한 서버를 가동하세요.

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

See author profile
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Skyline Cloud for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.