우분투(ubuntu 22.04)에서 스왑 메모리(swap memory)를 설정하는 방법
Ubuntu 22.04에서는 기본적으로 스왑 파일을 자동으로 생성하도록 설정되어 있습니다. 그러나 기본 스왑 파일 크기는 일반적으로 시스템의 물리적 메모리 크기에 따라 자동으로 조정됩니다. 일반적으로 Ubuntu 22.04에서는 물리적 메모리 크기의 약 50%에서 66% 정도를 기본 스왑 파일 크기로 설정합니다.
예를 들어, 시스템이 4GB RAM을 가지고 있다면 기본 스왑 파일 크기는 약 2GB에서 2.7GB 정도로 설정될 수 있습니다. 이렇게 작은 기본 스왑 파일은 일반적으로 일상적인 작업 및 가벼운 서버 운영에는 충분하지만, 메모리 집약적인 작업이나 대규모 애플리케이션을 실행할 때에는 스왑 공간이 부족할 수 있습니다. 따라서 필요에 따라 스왑 파일 크기를 조정해야 할 수 있습니다.
스왑 설정 확인
swapon --show
$ swapon --show
NAME TYPE SIZE USED PRIO
/swap.img file 8G 0B -2
/dev/sda3 partition 32G 0B -3
메모리 및 스왑 공간 확인
free -h
$ free -h
total used free shared buff/cache available
Mem: 62Gi 2.5Gi 52Gi 8.0Mi 7.5Gi 59Gi
Swap: 39Gi 0B 39Gi
swap.img 용량 및 퍼미션 확인
ls -lh /swap.img
$ ls -lh /swap.img
-rw------- 1 root root 8.0G May 18 12:33 /swap.img
fstab(/etc/fstab) 편집
cat /etc/fstab | egrep swap.img
$ cat /etc/fstab | egrep swap.img
/swap.img none swap sw 0 0
swap memory 비활성화
swapoff -v /swap.img
1. 스왑 파일 생성(fallocate 명령어)
스왑으로 사용할 파일을 생성합니다.
sudo fallocate -l 16G /swapfile
만약 fallocate 명령어가 작동하지 않는다면, dd 명령어를 사용할 수 있습니다.
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048
2. 스왑 파일 권한 설정
생성한 스왑 파일의 권한을 올바르게 설정합니다.
sudo chmod 600 /swapfile
3. 스왑 파일을 스왑 영역으로 설정
스왑 파일을 스왑 영역으로 설정합니다.
sudo mkswap /swapfile
4. 스왑 활성화
스왑 파일을 활성화합니다.
sudo swapon /swapfile
5. 스왑 설정 확인
스왑 설정이 제대로 되었는지 확인합니다.
sudo swapon --show
또는
free -h
6. 스왑 파일을 영구적으로 설정
시스템 재부팅 후에도 스왑 파일이 자동으로 활성화되도록 /etc/fstab 파일에 항목을 추가합니다.
echo "/swapfile swap swap default 0 0" >> /etc/fstab
7. 스왑 파라미터 조정
리눅스 시스템에서 메모리와 관련된 성능 튜닝을 위해 vm.swappiness와 vm.vfs_cache_pressure 파라미터를 조정할 수 있습니다.
vm.swappiness 조정 방법
swappiness는 시스템이 물리적 메모리 대신 스왑 공간을 사용할 것인지 여부를 결정합니다. 값이 낮을수록 스왑을 덜 사용하고, 값이 높을수록 스왑을 더 많이 사용합니다.
현재 swappiness 값 확인
cat /proc/sys/vm/swappiness
일시적으로 swappiness 값 변경
sudo sysctl -w vm.swappiness=10
영구적으로 swappiness 값 변경
sudo vim /etc/sysctl.conf
파일의 끝에 다음 라인을 추가
vm.swappiness=10
변경 사항을 즉시 적용
sudo sysctl -p
vm.vfs_cache_pressure 조정 방법
vfs_cache_pressure는 커널이 디스크 캐시 데이터 (inode 및 dentry 캐시)를 얼마나 적극적으로 해제할지를 결정합니다. 값이 높을수록 캐시를 더 자주 해제합니다.
1. 현재 vfs_cache_pressure 값 확인
cat /proc/sys/vm/vfs_cache_pressure
2. 일시적으로 vfs_cache_pressure 값 변경
sudo sysctl -w vm.vfs_cache_pressure=50
3. 영구적으로 vfs_cache_pressure 값 변경
sudo vim /etc/sysctl.conf
파일의 끝에 다음 라인을 추가
vm.vfs_cache_pressure=50
변경 사항을 즉시 적용
sudo sysctl -p
요약
현재 값 확인
cat /proc/sys/vm/swappiness
cat /proc/sys/vm/vfs_cache_pressure
일시적으로 값 변경
sudo sysctl -w vm.swappiness=<value>
sudo sysctl -w vm.vfs_cache_pressure=<value>
영구적으로 값 변경
sudo vim /etc/sysctl.conf
파일의 끝에 다음 라인 추가
vm.swappiness=<value>
vm.vfs_cache_pressure=<value>
변경 사항 즉시 적용
sudo sysctl -p
vm.swappiness와 vm.vfs_cache_pressure 값을 확인하고 일시적 및 영구적으로 변경할 수 있습니다.
'리눅스' 카테고리의 다른 글
맥(Mac)에서 AWS CLI를 최신 버전으로 설치하는 방법 (0) | 2022.07.22 |
---|---|
[draft] 우분투에 node.js와 npm을 설치하는 방법 (0) | 2022.07.22 |
HAProxy 컴파일을 통해 설치하는 방법(source compile) (0) | 2022.07.14 |
리눅스 glances 명령어 (0) | 2022.07.12 |
[리눅스] influxdb, grafana, telegraf 연동 (0) | 2022.07.10 |