Linux의 스왑 공간
스왑은 Linux 커널이 메모리의 오버플로로 사용하는 디스크 공간입니다. 자주 사용되지 않는 메모리 페이지가 그곳으로 이동하여 RAM이 활성 작업을 위해 여유 상태를 유지하도록 합니다. 전용 파티션이나 스왑 파일일 수 있으며, free -h 및 swapon --show 명령어로 표시됩니다.
1스왑이 여전히 유용한 이유
RAM이 충분하더라도 스왑을 통해 커널은 유휴 페이지를 메모리 밖으로 이동시킬 수 있으며, 메모리 부족 킬러(OOM killer)가 프로세스를 중단하기 전에 버퍼를 제공합니다. 그러나 지속적으로 심한 스와핑은 시스템에 더 많은 RAM이나 더 적은 작업량이 필요함을 의미합니다.
2스와피니스
커널 설정인 vm.swappiness(0~200, 기본값 60)는 커널이 파일 캐시를 삭제하는 것에 비해 얼마나 쉽게 스왑을 수행할지에 영향을 줍니다. 값이 낮을수록 애플리케이션 메모리가 RAM에 더 오래 유지됩니다. 이 값은 sysctl vm.swappiness로 읽고 /etc/sysctl.d/ 아래의 파일에 영구적으로 설정됩니다.
3스왑 파일
스왑 파일은 생성되고, mkswap으로 포맷되며, swapon으로 활성화되고, 재부팅 후에도 유지되도록 /etc/fstab에 추가됩니다. 권한은 반드시 600이어야 합니다.
2 GB 스왑 파일 추가 방법
- 파일 생성:
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 - 접근 권한 제한:
sudo chmod 600 /swapfile - 포맷:
sudo mkswap /swapfile - 활성화:
sudo swapon /swapfile - 영구 설정:
/etc/fstab에 '/swapfile none swap sw 0 0' 줄 추가 - 확인:
swapon --show및free -h
주의 사항
- Btrfs에서 스왑 파일에는 특별한 준비(쓰기 시 복사(COW) 방지)가 필요합니다. 배포판의 가이드를 따르세요.
/etc/fstab의 실수는 시스템 부팅을 막을 수 있습니다. 재부팅하기 전에 해당 줄을 확인하세요.
관련 문서
- df (disk free)df 출력 결과를 읽는 방법, 일반 사용자 기준에서 사용 가능한 공간(Avail)이 0이 되기 전에 사용률(Use%)이 100%에 도달할 수 있는 이유, 그리고 df -i를 통해 아이노드(inode)를 확인하는 방법을 설명합니다.
- systemd 유닛과 systemctlsystemd 유닛이 무엇인지, 일반적인 유닛 유형은 무엇인지, 그리고 systemctl을 사용하여 서비스를 시작, 중지, 활성화 및 검사하는 방법을 설명합니다.
- du와 ncdu를 이용한 디스크 사용량 확인단일 파일 시스템에 유지되는 옵션을 사용하여 du 및 대화형 ncdu로 Linux 디스크를 채우는 요소를 찾는 방법입니다.
출처
- swapon(8) man7.org
- mkswap(8) man7.org
- free(1) man7.org
- /proc/sys/vm 문서 (kernel.org) kernel.org
최종 검토: