리눅스 스왑 파일 설정으로 메모리 부족 방지가 필요하다는 걸 느낀 건 새벽에 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 값 확인 (기본값 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곳 인프라 전담)