스왑은 물리적 RAM 메모리의 양이 가득 차 있을 때 사용되는 디스크 드라이브의 공간입니다. Linux 시스템은 RAM이 부족하면 비활성 페이지를 RAM에서 스왑 공간으로 이동합니다.
스왑 공간은 전용 스왑 파티션, 스왑 파일 또는 파티션과 파일의 조합 형태를 취할 수 있습니다. 일반적으로 가상 머신에서 Ubuntu를 실행할 때 스왑 파티션은 존재하지 않으며 유일한 옵션은 스왑 파일을 생성하는 것입니다.
이 문서에서는 Ubuntu 22.04 시스템에서 스왑 파일을 추가하는 단계를 안내합니다.
시작하기 전에
스왑은 물리적 메모리를 대체하는 것이 아닙니다. 스왑 공간은 드라이브의 일부이므로 물리적 메모리보다 액세스 시간이 느립니다. 시스템의 메모리가 지속적으로 부족하면 RAM을 더 추가해야 합니다.
대부분의 경우 스왑 파일의 크기는 Linux 시스템의 물리적 RAM에 따라 달라집니다:
RAM이 2GB 미만인 시스템 - RAM 양의 2배입니다.
RAM 크기가 2 ~ 8GB인 시스템 - RAM 크기와 동일합니다.
RAM이 8GB 이상인 시스템 - 4GB 이상의 스왑.
sudo 권한을 가진 루트 또는 사용자만 스왑 파일을 활성화할 수 있습니다.
시작하기 전에 이미 시스템에 스왑이 있는지 확인하는 것이 좋습니다. 다음 명령을 사용하여 이를 수행할 수 있습니다:
sudo swapon --show
출력이 비어 있으면 시스템에 스왑 공간이 구성되어 있지 않음을 의미합니다. 그렇지 않으면 명령에 구성된 스왑 공간 목록이 표시됩니다.
또 다른 옵션은 free 명령을 사용하는 것입니다:
이 명령은 시스템의 메모리 사용량과 스왑 공간에 대한 정보를 인쇄합니다:
free -h
# The command will print the information about the system’s memory usage, as well as the swap space:
#
# total used free shared buff/cache available
# Mem: 3.8Gi 563Mi 2.8Gi 0.0Ki 516Mi 3.1Gi
# Swap: 0B 0B 0B
스왑 파일 생성
이 가이드에서는 4GB 스왑 파일을 생성합니다. 스왑을 더하거나 더 적게 추가해야 할 경우 4G를 필요한 스왑 공간 크기로 교체합니다.
파일을 만들기 전에 이 프로세스를 성공적으로 완료하기에 충분한 디스크 공간이 있는지 확인하십시오. df 명령을 사용하여 시스템의 디스크 공간 사용량에 대한 자세한 보고서를 얻을 수 있습니다:
여기서 루트 파일 시스템(/)은 파일을 생성하기에 충분한 여유 공간(53G)을 가집니다.
df -h
# Here, the root filesystem (/) has enough free space (53G) to create the file.
#
# Filesystem Size Used Avail Use% Mounted on
# tmpfs 197M 948K 196M 1% /run
# /dev/mapper/ubuntu--vg-ubuntu--lv 62G 6.3G 53G 11% /
# tmpfs 982M 0 982M 0% /dev/shm
# tmpfs 5.0M 0 5.0M 0% /run/lock
# /dev/sda2 2.0G 129M 1.7G 8% /boot
# tmpfs 197M 4.0K 197M 1% /run/user/1000
첫 번째 단계는 실패에 대한 파일입니다.
sudo fallocate -l 4G /swap.img
fallocate 유틸리티가 시스템에 없거나 fallocate failed: 작업이 지원되지 않습니다라는 오류 메시지가 나타나면 다음 명령을 사용하여 스왑 파일을 만듭니다:
sudo dd if=/dev/zero of=/swap.img bs=1024 count=4194304
파일이 생성되면 일반 사용자가 파일을 쓰고 읽지 못하도록 파일 사용 권한을 600으로 설정합니다:
sudo chmod 600 /swap.img
그런 다음 파일에 Linux 스왑 영역을 생성합니다:
sudo mkswap /swap.img
# Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
# no label, UUID=6f66b47a-fa4a-4346-8163-dc0337066572
다음 명령을 실행하여 스왑 파일을 활성화합니다:
sudo swapon /swap.img
변경 내용을 영구적으로 변경하려면 /etc/fstab 파일을 엽니다:
sudo nano /etc/fstab
다음 행을 붙여넣습니다:
# /etc/fstab
/swap.img swap swap defaults 0 0
다음과 같이 스왑 온 또는 free 명령을 사용하여 스왑이 활성화되어 있는지 확인합니다:
sudo swapon --show
# NAME TYPE SIZE USED PRIO
# /swap.img file 4G 0B -2
sudo free -h
# total used free shared buff/cache available
# Mem: 3.8Gi 566Mi 2.8Gi 0.0Ki 516Mi 3.1Gi
# Swap: 4.0Gi 0B 4.0Gi
Swappiness 값 조정
스와프니스는 시스템이 스와프 공간을 얼마나 자주 사용할 것인지를 정의하는 리눅스 커널 속성입니다. 0에서 100 사이의 값을 가질 수 있습니다. 값이 작으면 커널은 가능하면 스와프 공간을 피하려고 하는 반면, 값이 높으면 커널은 스와프 공간을 더 공격적으로 사용하게 됩니다.
Ubuntu에서는 기본 swappiness 값이 60으로 설정되어 있습니다. 다음 명령을 입력하여 현재 값을 확인할 수 있습니다:
cat /proc/sys/vm/swappiness
# 60
대부분의 Linux 시스템에서는 60의 스와프니스 값이 괜찮지만 프로덕션 서버의 경우 더 낮은 값을 설정해야 할 수도 있습니다.
예를 들어 swappiness 값을 10으로 설정하려면 다음을 실행합니다:
sudo sysctl vm.swappiness=10
재부팅 시에도 이 매개 변수를 지속적으로 유지하려면 /etc/sysctl.conf 파일에 다음 행을 추가합니다:
# /etc/sysctl.conf
vm.swappiness=10
최적의 스와프니스 값은 시스템 작업량과 메모리 사용 방법에 따라 달라집니다. 최적의 값을 찾기 위해서는 이 매개변수를 작은 단위로 조정해야 합니다.
스왑 파일 제거
스왑 파일을 비활성화하고 삭제하려면 먼저 스왑 공간을 비활성화합니다:
sudo swapoff -v /swap.img
그런 다음 /etc/fstab 파일에서 스왑 파일 항목 /swap.img 스왑 기본값 0을 제거합니다.
마지막으로 rm 명령을 사용하여 실제 swap.img 파일을 제거합니다:
sudo rm /swap.img
결론
Ubuntu 22.04 시스템에서 스왑 파일을 생성하고 스왑 공간을 활성화 및 구성하는 방법을 보여드렸습니다.
'SW > 리눅스' 카테고리의 다른 글
Linux : Apache : HTTP를 HTTPS로 리디렉션 방법, 예제, 명령어 (0) | 2024.01.25 |
---|---|
Linux : $PATH : 디렉토리 추가 방법, 예제, 명령어 (0) | 2024.01.24 |
Linux : Ubuntu 22.04 : MySQL 설치 방법, 예제, 명령어 (0) | 2024.01.22 |
Linux : Ubuntu 22.04 : Git 설치 방법, 예제, 명령어 (0) | 2024.01.21 |
리눅스 : Ubuntu 22.04 : MongoDB 설치 방법, 예제, 명령어 (0) | 2024.01.20 |