리눅스에서 스왑 파일 생성하는 방법

리눅스 내의 스왑은 가상 메모리로 예약된 특정 디스크 영역입니다. 이들은 주로 비디오 편집과 같은 리소스를 많이 사용하는 작업을 처리할 때 시스템 성능을 향상시키기 위해 사용됩니다. 시스템이 어려움을 겪기 시작하면 커널은 비활성 프로세스를 스왑으로 이동시켜 작업 메모리 내의 활성 프로세스를 위한 공간을 확보합니다.
일반적으로 리눅스 설치 시 스왑 파티션이 기본적으로 생성되어 하드 디스크에 이 용도를 위한 공간이 할당됩니다. 이는 오래된 컴퓨터의 작은 디스크에서 공간 문제가 발생하거나, 새로운 장치에서 SSD를 사용할 경우 여러 가지 단점이 있습니다.
SSD 드라이브의 문제는 셀 내의 쓰기 용량이 제한되어 있다는 것입니다. 균일한 쓰기 분산이 있더라도 플래시 메모리는 유한한 수명을 가지며, 여러 번의 쓰기가 개별 셀을 사용할 수 없게 만들 수 있습니다.
추가로 읽기: 리눅스에서 스왑 사용 관리하는 방법
대안은 무엇인가?
전용 스왑 파티션을 사용하는 것이 실용적이지 않거나, 단순히 대안을 시도하고 추가 RAM에 돈을 쓰고 싶지 않은 경우, 대신 스왑 파일을 사용할 수 있습니다.
스왑 파일은 파티션과 유사하게 작동하지만, 사용자가 크기를 조절할 수 있는 추가 이점이 있습니다. 또한, 스왑이 얼마나 전용으로 활용될지, 즉 “스왑 가능성” 요소도 스왑 값을 수정하여 제어할 수 있습니다.
스왑 생성
1GB 스왑 파일을 만드는 기본적인 예제를 진행하겠습니다.
먼저 터미널에 다음 명령어를 입력하여 파일을 생성합니다:
sudo fallocate -l 1G /mnt/1GB.swapfallocate가 설치되어 있지 않다면, 보다 전통적인 명령어를 실행합니다:
sudo dd if=/dev/zero of=/mnt/1GB.swap bs=1024 count=1048576이제 스왑 파일의 포맷을 설정합니다:
sudo mkswap /mnt/1GB.swap스왑 파일로 시스템에 추가합니다:
sudo swapon /mnt/1GB.swap선호하는 텍스트 편집기로 “/etc/fstab”을 열고, 마지막에 다음 내용을 추가하여 변경 사항을 영구화합니다:
/mnt/1GB.swap none swap sw 0 0위의 줄은 다음과 같이 구분됩니다:
- “/mnt/1GB.swap” – 장치 및 파일 이름
- “swap” – 마운트 포인트를 정의
- “swap sw” – 이 스왑 파일이 swapon에 의해 활성화됨을 나타냄 – s (아래 참조)
- “0 0” – 이들은 각각 덤프 프로그램과 fsck 명령이 사용하는 옵션입니다
이 시점에서 “스왑 가능성” 값을 수정하고 싶다면, 위에서 fstab을 편집한 것과 같은 방식으로 “/etc/sysctl.conf”를 편집하여 가능합니다. 스왑 가능성 값은 일반적으로 60입니다; 숫자가 높을수록 (100까지) 스왑이 더욱 공격적입니다.
vm.swappiness=10필요한 스왑 양은 시스템 성능과 메모리 사용 방식에 따라 다릅니다. 사용자는 자신에게 가장 적합한 값을 찾기 위해 실험해야 합니다. 위의 값이 0으로 설정되면 시스템이 메모리를 소진했을 때만 스왑 파일이 사용됩니다. 0보다 높은 값은 시스템이 유휴 프로세스를 스왑 아웃하고 메모리를 디스크 캐싱을 위해 자유롭게 할 수 있게 해줍니다; 이는 전체 시스템 성능을 개선할 수 있습니다.
추가로 읽기: 리눅스에서 스왑 파티션에 대해 알아야 할 것들
마지막으로 스왑이 활성화되어 있는지 확인합니다:
sudo swapon -s간단히 재부팅하면 스왑 파티션이 아닌 작동하는 스왑 파일을 가지게 됩니다. 어떤 옵션이 당신에게 가장 좋습니까? 파티션을 사용하시나요 아니면 전용 파일을 사용하시나요? 댓글로 알려주고, 파일 생성에 대한 다른 방법이 있다면 공유해주세요.