본문 바로가기

Programming

[리눅스] swap 확인 및 메모리 늘리기 방법

Swap 공간 및 사용량 확인 방법

# free -h
              total        used        free      shared  buff/cache   available
Mem:          6.2Gi       237Mi       5.4Gi       2.0Mi       490Mi       5.7Gi
Swap:         2.0Gi          0B       2.0Gi

시스템의 메모리(RAM)에서 사용하지 않는 데이터를 임시로 하드 디스크에 저장하게 되는데, 이 공간을 Swap 공간이라고 한다.

위와 같이 터미널 상에서 free명령어로 Swap 사용량을 확인할 수 있으며, -h 옵션을 통해 가독성 좋게 출력할 수 있다.

위의 경우 전체 스왑 영역으로 전체 2G가 잡혀있으며 현재는 스왑 공간이 사용되고 있지 않는 상태로 볼 수 있다.

# swapon -s
Filename                                Type            Size    Used    Priority
/swap/file                              file            2097152 0       -2

swapon 명령어를 통해 위와 같이 swap 영역으로 사용되는 파일명과 크기 등을 확인할 수 있다.

Swap 용량 추가 설정 방법

Swap 용량을 추가하려면 하드 디스크에 스왑 파일 또는 파티션을 만든 후, swapon 명령어를 통해 스왑 공간을 활성화해줄 수 있다.

아래는 스왑 파일을 별도로 추가하여 추가 스왑 영역을 설정하는 방법이다.

# fallocate -l 1G /swaptest
# ls -l | grep swaptest
-rw-r--r--   1 root root 1073741824 Dec 30 08:19 swaptest

# 도커 컨테이너의 경우
# dd if=/dev/zero of=/swaptest bs=1G count=1
1+0 records in
1+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 2.01587 s, 533 MB/s
# ls -l | grep swaptest
-rw-r--r--   1 root root 1073741824 Dec 30 09:04 swaptest

fallocate -l 명령어를 통해 스왑 크기 및 파일을 생성해 준다.
fallocate 파일의 할당 공간을 설정해주는 명령어이고, -l 옵션은 파일 크기를 바이트 단위로 지정할 수 있게 해 준다. 위의 명령어는 swaptest 파일에 1G 공간을 할당해 주며, 파일에 실제 데이터가 없어도 크기가 1G 파일이다.

# chmod 600 /swaptest
# ls -l | grep swaptest
-rw-------   1 root root 1073741824 Dec 30 08:19 swaptest

# 도커 컨테이너의 경우
# chown root:root /swaptest
# chmod 600 /swaptest
# ls -l | grep swaptest
-rw-------   1 root root 1073741824 Dec 30 09:04 swaptest

swapon이 접근할 수 있도록, root 사용자만 읽고 쓸 수 있게 해당 스왑 파일에 대한 권한을 설정해 준다.

# mkswap /swaptest
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=f65f8844-087a-459c-9e0a-a414e0eb92c5
# swapon /swaptest

생성한 스왑 파일을 스왑 공간으로 설정 및 swapon 명령어로 활성화해 준다.

 /swaptest swap swap defaults 0 0


시스템 재시작 후에도 설정한 스왑 파일을 유지하려면 /etc/fstab 경로의 파일에 추가해 준다.

 

반응형