← 전체 목록
서버백업운영

리눅스 스왑 파일 설정으로 메모리 부족 시 서버 다운을 방지합니다

ℹ️ 본 글은 정보 제공 목적이며, 광고·제휴 링크가 포함될 수 있습니다.

리눅스 스왑 파일 설정으로 메모리 부족 방지가 필요하다는 걸 느낀 건 새벽에 MySQL이 갑자기 죽어서 사이트가 다운됐을 때입니다. 서버 로그에 Out of memory: Killed process ... (mysqld) 메시지가 있었고, 그 순간 메모리 사용률이 98%였습니다. RAM 2GB 서버에 스왑이 전혀 없었던 것이 문제였습니다.

현재 메모리 및 스왑 상태 확인

# 메모리 및 스왑 현황
free -h

# 스왑 상세 정보
swapon --show

# 메모리 사용 상위 프로세스
ps aux --sort=-%mem | head -10

스왑 파일 생성 및 활성화

# 2GB 스왑 파일 생성 (RAM의 1~2배 권장)
sudo fallocate -l 2G /swapfile

# 보안 권한 설정 (root만 접근)
sudo chmod 600 /swapfile

# 스왑 포맷
sudo mkswap /swapfile

# 스왑 활성화
sudo swapon /swapfile

# 확인
free -h
swapon --show

재부팅 후에도 유지되도록 설정

# /etc/fstab에 추가
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# 설정 검증
sudo cat /etc/fstab | grep swap

스왑 사용 빈도 조정 (swappiness)

# 현재 swappiness 값 확인 (기본값 60)
cat /proc/sys/vm/swappiness

# RAM 여유 있을 때 스왑 최대한 안 쓰도록 낮춤 (서버 권장: 10~20)
sudo sysctl vm.swappiness=10

# 재부팅 후에도 유지
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf

스왑은 RAM이 부족할 때의 안전망이지, 상시 사용하는 것이 아닙니다. swappiness=10으로 설정하면 RAM 여유가 있을 때는 스왑을 거의 사용하지 않습니다. 스왑 사용률이 지속적으로 높다면 RAM 업그레이드를 고려해야 합니다.

편집 정책

AI가 초안을 생성하고, 의료기관 인프라 운영자가 1차 데이터 기반으로 최종 검수·승인합니다.

작성·검수: WavePix 운영자 (의료기관 3곳 인프라 전담)