15장. Swap Space
Linux의 스왑 공간은 실제 메모리(RAM)가 가득 차면 사용됩니다. 시스템에 더 많은 메모리 리소스가 필요하고 RAM이 가득 차 있으면 메모리의 비활성 페이지가 스왑 공간으로 이동합니다. 스왑 공간은 RAM이 적은 시스템에 도움이 될 수 있지만 더 많은 RAM을 대체하는 것은 아닙니다. 스왑 공간은 실제 메모리보다 더 느린 액세스 시간이 있는 하드 드라이브에 있습니다. 스왑 공간은 전용 스왑 파티션(권장), 스왑 파일 또는 스왑 파티션과 스왑 파일의 조합일 수 있습니다. vGPU 는 스왑 공간을 지원하지 않습니다.
지난 몇 년 간 권장 스왑 공간은 시스템의 RAM 양과 함께 선형적으로 증가했습니다. 그러나 최신 시스템에는 수백 기가바이트의 RAM이 포함된 경우가 많습니다. 따라서 권장되는 스왑 공간은 시스템 메모리가 아닌 시스템 메모리 워크로드의 기능으로 간주됩니다.
표 15.1. “시스템 스왑 공간 권장” 은 시스템의 RAM 용량과 시스템에 충분한 메모리가 필요한지 여부와 시스템의 최대 메모리 크기에 따라 권장되는 스왑 파티션 크기를 보여줍니다. 권장되는 스왑 파티션 크기는 설치 중에 자동으로 설정됩니다. 하지만 최대 절전 모드를 허용하려면 사용자 지정 파티션 단계에서 스왑 공간을 편집해야 합니다.
표 15.1. “시스템 스왑 공간 권장” 의 권장 사항은 메모리가 부족한 시스템에서 특히 중요합니다(1GB 이하). 이러한 시스템에 충분한 스왑 공간을 할당하지 않으면 불안정성을 유발하거나 설치된 시스템을 부팅할 수 없도록 렌더링할 수 있습니다.
시스템의 RAM 크기 | 권장되는 스왑 공간 | 최대 절전을 허용하는 경우 권장 스왑 공간 |
---|---|---|
2GB | RAM의 두 배 크기 | 3배 RAM 용량 |
> 2GB - 8GB | RAM의 양과 같습니다. | RAM의 두 배 크기 |
> 8GB - 64GB | 최소 4GB | 1.5배 RAM 용량 |
> 64GB | 최소 4GB | Hibernation이 권장되지 않음 |
참고
64GB 이상의 RAM이 있는 시스템에서는 hibernation를 사용하지 않는 데는 두 가지 이유가 있습니다. 먼저, 컷팅을 위한 추가 공간 (및 자주 사용하지 않는 경우) 스왑 공간이 필요합니다. 둘째, 상주 데이터를 RAM에서 디스크로 이동하고 다시 이동하는 프로세스는 완료하는 데 시간이 많이 걸릴 수 있습니다.
표 15.1. “시스템 스왑 공간 권장” 에 나열된 각 범위 간의 경계(예: 2GB, 8GB 또는 64GB의 시스템 RAM이 있는 시스템)에서 선택한 스왑 공간과 하이퍼메이션 지원과 관련하여 재량에 따라 재량을 행사할 수 있습니다. 시스템 리소스에서 허용하는 경우 스왑 공간을 늘리면 성능이 향상될 수 있습니다.
여러 스토리지 장치에 스왑 공간을 분산하면 특히 빠른 드라이브, 컨트롤러 및 인터페이스가 있는 시스템에서 스왑 공간 성능이 향상됩니다.
중요
스왑 공간으로 할당된 파일 시스템 및 LVM2 볼륨은 수정할 때 사용하지 않아야 합니다. 시스템 프로세스 또는 커널이 스왑 공간을 사용하는 경우 스왑 실패를 수정하려고 합니다. free 및 cat /proc/swaps 명령을 사용하여 스왑이 사용 중인 양과 위치를 확인합니다.
시스템이
복구
모드에서 부팅되는 동안 스왑 공간을 수정해야 합니다. Red Hat Enterprise Linux 7 설치 가이드에서 복구 모드에서 컴퓨터 부팅 을 참조하십시오. 파일 시스템을 마운트하라는 메시지가 표시되면 를 선택합니다.
15.1. 스왑 공간 추가
경우에 따라 설치 후 더 많은 스왑 공간을 추가해야 합니다. 예를 들어 시스템의 RAM 용량을 1GB에서 2GB로 업그레이드할 수 있지만 2GB의 스왑 공간만 있습니다. 메모리 부족 작업을 수행하거나 많은 양의 메모리가 필요한 애플리케이션을 실행하는 경우 스왑 공간의 양을 4GB로 늘리는 것이 바람직할 수 있습니다.
새 스왑 파티션을 만들거나 새 스왑 파일을 생성하거나 기존 LVM2 논리 볼륨에서 스왑을 확장하는 세 가지 옵션이 있습니다. 기존 논리 볼륨을 확장하는 것이 좋습니다.
15.1.1. LVM2 논리 볼륨에서swap 확장
기본적으로 Red Hat Enterprise Linux 7은 설치 중에 사용 가능한 모든 공간을 사용합니다. 시스템과 관련된 경우 먼저 스왑 공간에서 사용하는 볼륨 그룹에 새 물리 볼륨을 추가해야 합니다.
스왑 공간의 볼륨 그룹에 스토리지를 추가한 후 이를 확장할 수 있습니다. 이렇게 하려면
/dev/VolGroup00/LogVol01
을 2GB로 확장하려는 볼륨이라고 가정하여 다음 절차를 수행하십시오.
절차 15.1. LVM2 논리 볼륨에서swap 확장
- 연결된 논리 볼륨에 대한 스왑을 비활성화합니다.
# swapoff -v /dev/VolGroup00/LogVol01
- LVM2 논리 볼륨의 크기를 2GB로 조정합니다.
# lvresize /dev/VolGroup00/LogVol01 -L +2G
- 새 스왑 공간을 포맷합니다.
# mkswap /dev/VolGroup00/LogVol01
- 확장 논리 볼륨을 활성화합니다.
# swapon -v /dev/VolGroup00/LogVol01
- 스왑 논리 볼륨이 확장 및 활성화되었는지 테스트하려면 활성 스왑 공간을 검사합니다.
$ cat /proc/swaps $ free -h
15.1.2. swap을 위한 LVM2 논리 볼륨 만들기
스왑 볼륨 그룹 2GB를 추가하려면
/dev/VolGroup00/LogVol02
가 추가하려는 스왑 볼륨이라고 가정합니다.
- 2GB 크기의 LVM2 논리 볼륨을 생성합니다.
# lvcreate VolGroup00 -n LogVol02 -L 2G
- 새 스왑 공간을 포맷합니다.
# mkswap /dev/VolGroup00/LogVol02
/etc/fstab
파일에 다음 항목을 추가합니다./dev/VolGroup00/LogVol02 swap swap defaults 0 0
- 시스템에서 새 구성을 등록하도록 마운트 장치를 다시 생성합니다.
#
systemctl daemon-reload - 논리 볼륨에서 스왑을 활성화합니다.
# swapon -v /dev/VolGroup00/LogVol02
- 스왑 논리 볼륨이 성공적으로 생성되고 활성화되었는지 테스트하려면 활성 스왑 공간을 검사합니다.
$ cat /proc/swaps $ free -h
15.1.3. 스왑 파일 생성
스왑 파일을 추가하려면 다음을 수행합니다.
절차 15.2. 스왑 파일 추가
- 새 스왑 파일의 크기를 메가바이트 단위로 결정하고 1024를 곱하여 블록 수를 결정합니다. 예를 들어 64MB 스왑 파일의 블록 크기는 65536입니다.
- 빈 파일을 생성합니다.
# dd if=/dev/zero of=/swapfile bs=1024 count=65536
count 를 원하는 블록 크기와 동일한 값으로 바꿉니다. - 명령을 사용하여 스왑 파일을 설정합니다.
# mkswap /swapfile
- 읽을 수 없도록 스왑 파일의 보안을 변경합니다.
# chmod 0600 /swapfile
- 부팅 시 스왑 파일을 활성화하려면
/etc/fstab
를 root로 편집하여 다음 항목을 포함합니다./swapfile swap swap defaults 0 0
다음에 시스템을 부팅할 때 새 스왑 파일을 활성화합니다. - 시스템에서 새
/etc/fstab
구성을 등록하도록 마운트 장치를 다시 생성합니다.#
systemctl daemon-reload - 스왑 파일을 즉시 활성화하려면 다음을 수행하십시오.
# swapon /swapfile
- 새 스왑 파일이 성공적으로 생성되고 활성화되었는지 테스트하려면 활성 스왑 공간을 검사합니다.
$ cat /proc/swaps $ free -h