35.6. 스왑 시작하기
스왑 공간을 사용하여 비활성 프로세스 및 데이터에 임시 스토리지를 제공하고 물리적 메모리가 가득 차면 메모리 부족 오류를 방지합니다. 스왑 공간은 실제 메모리의 확장 기능 역할을 하며 물리적 메모리가 소진된 경우에도 시스템이 원활하게 계속 실행되도록 합니다. 스왑 공간을 사용하면 시스템 성능이 저하될 수 있으므로 스왑 공간을 사용하기 전에 물리적 메모리 사용을 최적화할 수 있습니다.
35.6.1. 스왑 공간 개요 링크 복사링크가 클립보드에 복사되었습니다!
Linux의 스왑 공간은 실제 메모리(RAM)가 가득 차면 사용됩니다. 시스템에 더 많은 메모리 리소스가 필요하고 RAM이 가득 차 있으면 메모리의 비활성 페이지가 스왑 공간으로 이동합니다. 스왑 공간은 RAM이 적은 시스템에 도움이 될 수 있지만 더 많은 RAM을 대체하는 것은 아닙니다.
스왑 공간은 실제 메모리보다 더 느린 액세스 시간이 있는 하드 드라이브에 있습니다. 스왑 공간은 전용 스왑 파티션(권장), 스왑 파일 또는 스왑 파티션과 스왑 파일의 조합일 수 있습니다.
지난 몇 년 간 권장 스왑 공간은 시스템의 RAM 양과 함께 선형적으로 증가했습니다. 그러나 최신 시스템에는 수백 기가바이트의 RAM이 포함된 경우가 많습니다. 따라서 권장되는 스왑 공간은 시스템 메모리가 아닌 시스템 메모리 워크로드의 기능으로 간주됩니다.
35.6.2. 권장되는 시스템 스왑 공간 링크 복사링크가 클립보드에 복사되었습니다!
스왑 파티션의 권장 크기는 시스템의 RAM 크기와 시스템이 hibernate에 충분한 메모리를 원하는지에 따라 달라집니다. 권장되는 스왑 파티션 크기는 설치 중에 자동으로 설정됩니다. 하지만 최대 절전 모드를 허용하려면 사용자 지정 파티션 단계에서 스왑 공간을 편집해야 합니다.
메모리 부족(예: 1GB 이하)에서 다음 권장 사항은 특히 중요합니다. 이러한 시스템에 충분한 스왑 공간을 할당하지 않으면 불안정과 같은 문제가 발생할 수 있거나 설치된 시스템을 부팅할 수 없게 될 수도 있습니다.
시스템의 RAM 크기 | 권장 스왑 공간 | 최대 절전 모드를 허용하는 경우 권장 스왑 공간 |
---|---|---|
2GB | RAM의 2 배 | RAM의 3 배 |
> 2 GB - 8 GB | RAM의 양과 같음 | RAM의 2 배 |
> 8 GB - 64 GB | 최소 4GB | RAM의 1.5 배 |
> 64GB | 최소 4GB | 최대 절전 모드는 권장되지 않음 |
2GB, 8GB 또는 64GB의 시스템 RAM과 같은 경계 값의 경우 요구 사항 또는 기본 설정에 따라 스왑 크기를 선택합니다. 시스템 리소스에서 허용하는 경우 스왑 공간을 늘리면 성능이 향상될 수 있습니다.
여러 스토리지 장치에 스왑 공간을 분산하면 특히 빠른 드라이브, 컨트롤러 및 인터페이스가 있는 시스템에서 스왑 공간 성능이 향상됩니다.
스왑 공간으로 할당된 파일 시스템 및 LVM2 볼륨은 수정 시 사용해서는 안 됩니다. 스왑을 수정하려는 시도는 시스템 프로세스 또는 커널이 스왑 공간을 사용하는 경우 실패합니다. free
및 cat /proc/swaps
명령을 사용하여 스왑이 사용 중인 양과 위치를 확인합니다.
스왑 공간 크기를 조정하려면 시스템에서 일시적으로 제거해야 합니다. 이는 실행 중인 애플리케이션이 추가 스왑 공간을 사용하고 메모리 부족 상황에서 실행될 수 있는 경우 문제가 될 수 있습니다. 복구 모드에서 스왑 크기 조정을 수행하는 것이 좋습니다. 디버그 부팅 옵션을 참조하십시오. 파일 시스템을 마운트하라는 메시지가 표시되면 을 선택합니다.
35.6.3. 스왑을 위한 LVM2 논리 볼륨 생성 링크 복사링크가 클립보드에 복사되었습니다!
스왑에 사용할 LVM2 논리 볼륨을 만들 수 있습니다. /dev/VolGroup00/LogVol02 를 추가하려는 스왑 볼륨이라고 가정합니다.
사전 요구 사항
- 디스크 공간이 충분합니다.
프로세스
2GB 크기의 LVM2 논리 볼륨을 만듭니다.
lvcreate VolGroup00 -n LogVol02 -L 2G
# lvcreate VolGroup00 -n LogVol02 -L 2G
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 스왑 공간을 포맷합니다.
mkswap /dev/VolGroup00/LogVol02
# mkswap /dev/VolGroup00/LogVol02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/fstab
파일에 다음 항목을 추가합니다./dev/VolGroup00/LogVol02 none swap defaults 0 0
/dev/VolGroup00/LogVol02 none swap defaults 0 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 시스템이 새 구성을 등록하도록 마운트 단위를 다시 생성합니다.
systemctl daemon-reload
# systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 논리 볼륨에서 스왑을 활성화합니다.
swapon -v /dev/VolGroup00/LogVol02
# swapon -v /dev/VolGroup00/LogVol02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
스왑 논리 볼륨이 성공적으로 생성되고 활성화되었는지 테스트하려면 다음 명령을 사용하여 활성 스왑 공간을 검사합니다.
cat /proc/swaps total used free shared buff/cache available Mem: 30Gi 1.2Gi 28Gi 12Mi 994Mi 28Gi Swap: 22Gi 0B 22Gi
# cat /proc/swaps total used free shared buff/cache available Mem: 30Gi 1.2Gi 28Gi 12Mi 994Mi 28Gi Swap: 22Gi 0B 22Gi
Copy to Clipboard Copied! Toggle word wrap Toggle overflow free -h
# free -h total used free shared buff/cache available Mem: 30Gi 1.2Gi 28Gi 12Mi 995Mi 28Gi Swap: 17Gi 0B 17Gi
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
35.6.4. 스왑 파일 만들기 링크 복사링크가 클립보드에 복사되었습니다!
스왑 파일을 만들어 시스템이 메모리에서 부족해지는 경우 솔리드 스테이트 드라이브 또는 하드 디스크에 임시 스토리지 공간을 만들 수 있습니다.
사전 요구 사항
- 디스크 공간이 충분합니다.
프로세스
- 새 스왑 파일의 크기를 메가바이트 단위로 결정하고 1024를 곱하여 블록 수를 결정합니다. 예를 들어 64MB 스왑 파일의 블록 크기는 65536입니다.
빈 파일을 생성합니다.
dd if=/dev/zero of=/swapfile bs=1024 count=65536
# dd if=/dev/zero of=/swapfile bs=1024 count=65536
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 65536 을 필요한 블록 크기와 동일한 값으로 바꿉니다.
명령을 사용하여 스왑 파일을 설정합니다.
mkswap /swapfile
# mkswap /swapfile
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 스왑 파일의 보안을 세계로 읽을 수 없도록 변경합니다.
chmod 0600 /swapfile
# chmod 0600 /swapfile
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 부팅 시 스왑 파일을 활성화하려면 다음 항목으로
/etc/fstab
파일을 편집합니다./swapfile none swap defaults 0 0
/swapfile none swap defaults 0 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음에 시스템이 부팅되면 새 스왑 파일이 활성화됩니다.
시스템이 새
/etc/fstab
구성을 등록하도록 마운트 단위를 다시 생성합니다.systemctl daemon-reload
# systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 즉시 스왑 파일을 활성화합니다.
swapon /swapfile
# swapon /swapfile
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
새 스왑 파일이 성공적으로 생성되고 활성화되었는지 테스트하려면 다음 명령을 사용하여 활성 스왑 공간을 검사합니다.
cat /proc/swaps
$ cat /proc/swaps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow free -h
$ free -h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
35.6.5. 스토리지 RHEL 시스템 역할을 사용하여 스왑 볼륨 생성 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 예제 Ansible 플레이북을 제공합니다. 이 플레이북은 기본 매개 변수를 사용하여 블록 장치에서 스왑 볼륨을 생성하거나 스왑 볼륨이 없는 경우 스왑 볼륨을 수정하는 데 스토리지
역할을 적용합니다.
사전 요구 사항
- 컨트롤 노드 및 관리형 노드를 준비했습니다.
- 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
-
관리 노드에 연결하는 데 사용하는 계정에는
sudo
권한이 있습니다.
프로세스
다음 콘텐츠를 사용하여 플레이북 파일(예:
~/playbook.yml
)을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 볼륨 이름(예의
swap_fs
)은 현재 임의의 상태입니다.스토리지
역할은disks:
속성에 나열된 디스크 장치로 볼륨을 식별합니다.플레이북 구문을 확인합니다.
ansible-playbook --syntax-check ~/playbook.yml
$ ansible-playbook --syntax-check ~/playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.
Playbook을 실행합니다.
ansible-playbook ~/playbook.yml
$ ansible-playbook ~/playbook.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
35.6.6. LVM2 논리 볼륨에서 스왑 확장 링크 복사링크가 클립보드에 복사되었습니다!
기존 LVM2 논리 볼륨에서 스왑 공간을 확장할 수 있습니다. /dev/VolGroup00/LogVol01 이 2GB 까지 확장할 볼륨이라고 가정합니다.
사전 요구 사항
- 디스크 공간이 충분합니다.
프로세스
연결된 논리 볼륨의 스왑을 비활성화합니다.
swapoff -v /dev/VolGroup00/LogVol01
# swapoff -v /dev/VolGroup00/LogVol01
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LVM2 논리 볼륨의 크기를 2GB 로 조정합니다.
lvresize /dev/VolGroup00/LogVol01 -L +2G
# lvresize /dev/VolGroup00/LogVol01 -L +2G
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 스왑 공간을 포맷합니다.
mkswap /dev/VolGroup00/LogVol01
# mkswap /dev/VolGroup00/LogVol01
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 확장 논리 볼륨을 활성화합니다.
swapon -v /dev/VolGroup00/LogVol01
# swapon -v /dev/VolGroup00/LogVol01
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
스왑 논리 볼륨이 성공적으로 확장 및 활성화되었는지 테스트하려면 활성 스왑 공간을 검사합니다.
cat /proc/swaps Filename Type Size Used Priority /dev/dm-1 partition 16322556 0 -2 /dev/dm-4 partition 7340028 0 -3
# cat /proc/swaps Filename Type Size Used Priority /dev/dm-1 partition 16322556 0 -2 /dev/dm-4 partition 7340028 0 -3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow free -h
# free -h total used free shared buff/cache available Mem: 30Gi 1.2Gi 28Gi 12Mi 994Mi 28Gi Swap: 22Gi 0B 22Gi
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
35.6.7. LVM2 논리 볼륨에서 스왑 감소 링크 복사링크가 클립보드에 복사되었습니다!
LVM2 논리 볼륨에서 스왑을 줄일 수 있습니다. /dev/VolGroup00/LogVol01 이 줄려는 볼륨이라고 가정합니다.
프로세스
연결된 논리 볼륨의 스왑을 비활성화합니다.
swapoff -v /dev/VolGroup00/LogVol01
# swapoff -v /dev/VolGroup00/LogVol01
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 스왑 서명을 정리합니다.
wipefs -a /dev/VolGroup00/LogVol01
# wipefs -a /dev/VolGroup00/LogVol01
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LVM2 논리 볼륨을 512MB로 줄입니다.
lvreduce /dev/VolGroup00/LogVol01 -L -512M
# lvreduce /dev/VolGroup00/LogVol01 -L -512M
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 스왑 공간을 포맷합니다.
mkswap /dev/VolGroup00/LogVol01
# mkswap /dev/VolGroup00/LogVol01
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 논리 볼륨에서 스왑을 활성화합니다.
swapon -v /dev/VolGroup00/LogVol01
# swapon -v /dev/VolGroup00/LogVol01
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
스왑 논리 볼륨이 성공적으로 감소되었는지 테스트하려면 다음 명령을 사용하여 활성 스왑 공간을 검사합니다.
cat /proc/swaps
$ cat /proc/swaps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow free -h
$ free -h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
35.6.8. 스왑을 위한 LVM2 논리 볼륨 제거 링크 복사링크가 클립보드에 복사되었습니다!
스왑의 LVM2 논리 볼륨을 제거할 수 있습니다. /dev/VolGroup00/LogVol02 를 제거하려는 스왑 볼륨이라고 가정합니다.
프로세스
연결된 논리 볼륨의 스왑을 비활성화합니다.
swapoff -v /dev/VolGroup00/LogVol02
# swapoff -v /dev/VolGroup00/LogVol02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow LVM2 논리 볼륨을 제거합니다.
lvremove /dev/VolGroup00/LogVol02
# lvremove /dev/VolGroup00/LogVol02
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/fstab
파일에서 다음 관련 항목을 제거합니다./dev/VolGroup00/LogVol02 none swap defaults 0 0
/dev/VolGroup00/LogVol02 none swap defaults 0 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 마운트 단위를 다시 생성하여 새 구성을 등록합니다.
systemctl daemon-reload
# systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
논리 볼륨이 성공적으로 제거되었는지 테스트합니다. 다음 명령을 사용하여 활성 스왑 공간을 검사합니다.
cat /proc/swaps
$ cat /proc/swaps
Copy to Clipboard Copied! Toggle word wrap Toggle overflow free -h
$ free -h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
35.6.9. 스왑 파일 제거 링크 복사링크가 클립보드에 복사되었습니다!
스왑 파일을 제거할 수 있습니다.
프로세스
/swapfile
스왑 파일을 비활성화합니다.swapoff -v /swapfile
# swapoff -v /swapfile
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
그에 따라
/etc/fstab
파일에서 해당 항목을 제거합니다. 시스템이 새 구성을 등록하도록 마운트 단위를 다시 생성합니다.
systemctl daemon-reload
# systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 실제 파일을 제거합니다.
rm /swapfile
# rm /swapfile
Copy to Clipboard Copied! Toggle word wrap Toggle overflow