스왑 메모리(Swap Memory) 설정: 파티션&파일 2가지 방식 | swapon, mkswap 명령어

공정위 광고 문구 Ver 3.1
공정위 광고 문구 Ver 3.2(모바일 전용)

리눅스 스왑 메모리(Swap Memory)는 실제 디스크 공간을 메모리처럼 사용하는 개념이기 때문에 물리 메모리인 RAM보다 처리 속도가 느리지만 물리 메모리가 가득 찬 경우를 대비해 디스크 공간에서 할당 된 스왑 메모리를 생성해서 관리할 수 있어 한정된 리소스를 효율적으로 사용할 수 있습니다.

✅ Swap 파일 시스템

Swap 파일 시스템은 리눅스의 가상 메모리를 사용하기 위한 파일 시스템이며, 여기서 가상 메모리란 실제 메모리(RAM)보다 더 많은 메모리를 사용하기 위한 기술입니다. 물리적인 메모리가 부족하여 하드 디스크에서 메모리를 옴겨오는 방식을 스와핑(Swaping)라고 합니다.

Swap 메모리는 물리 서버와 클라우드 서버 관계 없이 서버의 갑작스러운 메모리 사용량 증가에 안정적으로 대응할 수 있는 장점을 가지고 있습니다. AWS 서비스를 사용하더라도 무조건 EC2 인스턴스에서 높은 메모리 사양의 서비스를 사용하기에는 가격 부담이 있을 수 밖에 없습니다.

  • 스왑 메모리란?
  • RAM 용량이 부족할 경우 프로세스가 임시 저장되는 공간으로 디스크 공간을 사용하는 시스템
  • 일시적인 서버의 과부하가 발생하여 메모리 부족으로 발생하는 문제를 미연에 방지
  • 하드 디스크 공간을 사용하기 때문에 메모리에 비해 속도가 떨어짐.
  • 스왑 메모리 크기는 보통 RAM의 두 배를 권장합니다.

Swap 파일 시스템을 이용해 스왑 영역을 구성하는 방법은 스왑 파티션 생성과 스왑 파일로 두 가지 방법이 있습니다.

✅ mkswap 명령어

mkswap 명령어는 “MaKe Swap”의 약자이며, 리눅스의 스왑 영역을 지정하는 명령어입니다.

1. 기본 옵션

mkswap -[옵션] [스왑 파일 or 파티션]

2. mkswap 옵션

# 스왑 파티션 생성 전에 배드 블록(Basd Block)을 검사해 줍니다.
mkswap -c  /dev/xvdf1

✅ swapon 명령어

말 그대로 설정된 스왑 디스크 or 스왑 을 실행(on) 시킨다는 뜻을 가지고 있습니다.

1. 기본 사용 방법

swapon 명령어를 사용해서 파티션을 연결합니다.

swapon [/dev/파티션 or 파일]
# 예시
swapon /dev/xvdf1

2. swapon 옵션 사용

swapon -[옵션] [/dev/파티션 or 파일]
# -옵션 사용 사용 예시 [-s]
swapon -s
Filename				Type		Size		Used		Priority
/dev/xvdf1                              partition	4194300		0		-2

✅ swapoff 명령어

swapoff 는 말 그대로 실행 중인 스왑 파일을 끈다는 뜻을 가지고 있습니다.

swapoff -[옵션] [/dev/파티션 or 스왑파일]
# 사용 예시
swapon -v
NAME       TYPE      SIZE USED PRIO
/dev/xvdf2 partition   4G 768K   -2
/dev/xvdf3 partition   4G   0B   -3
/swapfile  file        4G   0B   -4

swapoff /dev/xvdf3
swapoff /swapfile
swapoff 옵션설명
-a모든 스왑 영역 중지. 스왑 영역이 1개일 때는 -a 옵션이 필요 없습니다.
2개 이상의 스왑 영역이 동작 중일 때 사용하는 옵션입니다.

✅ 리눅스 스왑 메모리(Linux Swap Memory) 만들기: 파티션

gdisk 명령어로 Swap 파티션을 생성합니다. 기존 파티션의 변경도 동일한 방법으로 진행이 가능합니다.

스왑 메모리(Swap Memoney) 파티션 생성
  • mkswap 명령어를 사용했을 때 파티션이 리눅스 파일 시스템 파일 시스템으로 생성했더라도 스왑 파티션으로 포맷이 되면서 연결되면서 사용 가능하지만 gdisk 명령어 등으로 확인했을 때 파일 시스템으로 인식하기 때문에 파티션은 8200으로 설정하겠습니다.

1. 스왑 메모리(Swap Memory) 영역 설정

이제 Swap 메모리를 추가 해 보겠습니다.

mkswap /dev/xvdf3
Setting up swapspace version 1, size = 4 GiB (4294963200 bytes)
no label, UUID=84bbe826-c750-4a58-a299-92db8b584337

이제 스왑 메모리를 마운트 해서 활성화합니다.

재부팅 테스트 결과 swapon -a 옵션은 일시적인 활성화이므로 /etc/fstab에서 재 부팅 했을 때 자동으로 설정되도록 적용합니다.

2. /etc/fstab 설정

✅ 스왑 파일 생성

  • dd 명령어 사용 예시(기본적인 예시임)
dd if=/dev/zero of=/swapfile bs=1MB count=2048


3+0 records in
2+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 77.5708 s, 27.7 MB/s
# /dev/zero에서 1M 씩 2천 번 스왑 파일을 읽어서 저장한다는 의미입니다. 2M * 2000 = 2G의 파일이 생성 되었음을 알 수 있습니다. 블록 단위 차이를 만들 수 있는 점을 확인할 수 있으며, 총 용량의 큰 차이는 없겠지만 count를 2048로 맞추면 정확한 2G가 됩니다.

dd if=/dev/zero of=/swapfile bs=128M count=16
#128 *16 = 2048 fh 2의 스왑 파일이 생성 되었음을 알 수 있습니다. 
# 스왑 파일을 루트 폴더에 만들 경우 시스템의 성능 저하가 있을 수 있습니다.
# (특히 SSD가 아닌 HDD일 경우 체감도가 클 수 있습니다.) 
  • 스왑 파일 생성 및 활성화 하기(스왑 파일 생성 작업 진행)
dd if=/dev/zero of=/swapfile bs=1MB count=2048
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 32.614 s, 65.8 MB/s
# 스왑 메모리 영역 설정
mkswap /swapfile 
mkswap: /swapfile: insecure permissions 0644, fix with: chmod 0600 /swapfile
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=311e95bc-f5ce-4404-86f6-750a79457da3
# 퍼미션 600으로 설정
chmod 600 /swapfile
# 활성화
swapon /swapfile
# 확인(기존에 생성된 [스왑 파티션 xvdf1], [스왑 파일]이 함꼐 구동됨을 확인할 수 있습니다.)
---생략--- 
swapon -v
NAME       TYPE      SIZE USED PRIO
/dev/xvdf1 partition   4G 256K   -2
/swapfile  file        2G   0B   -3

✅ 스왑 파티션 & 파일 삭제

스왑 파일을 삭제 할 때 먼저 진행할 사항은 실행 중인 스왑 파티션 or 파일을 swapoff 명령어로 중지 후 진행하는 것입니다.

1. 스왑 파티션 삭제

파티션의 삭제는 먼저 swapoff 진행 후 gdisk 명령어로 파티션의 삭제를 순차적으로 진행할 수 있습니다. 리눅스 파일 시스템이나

lsblk
---생략---
xvdf    202:80   0   33G  0 disk 
├─xvdf1 202:81   0    5G  0 part 
├─xvdf2 202:82   0    4G  0 part [SWAP]
└─xvdf3 202:83   0    4G  0 part [SWAP]
swapoff /dev/xvdf2
gdisk
Command (? for help): p
Disk /dev/xvdf: 69206016 sectors, 33.0 GiB
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 186D383F-9869-4A75-9742-969E83CD7FA5
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 69205982
Partitions will be aligned on 2048-sector boundaries
Total free space is 41942973 sectors (20.0 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048        10487807   5.0 GiB     8300  Linux filesystem
   2        10487808        18876415   4.0 GiB     8200  Linux swap
   3        18876416        27265023   4.0 GiB     8300  Linux swap
Command (? for help): d
Partition number (1-3): 2
Command (? for help): w
Do you want to proceed? (Y/N): y

2. 스왑 파일 삭제

디스크 블록으로 설정된 스왑 파일을 삭제합니다.

swapoff /swapfile
rf /swapoff

ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.

Similar Posts

  • RAID 구성 | RAID Level 0, 1, 4, 5, 6, 1+0, 0+1

    RAID(Redundant Array of Independent Disks 또는 Redundant Array of Inexpensive Disks)는 뜻 하는 내용처럼 여러 개의 디스크를 스토리지 하나처럼 운영하여 스토리지의 안정성을 확보하는 기술입니다. 저렴한(Independent) 디스크의 복수 배열의 뜻에서 독립적인 디스크의 복수 배열이란 뜻으로 많이 사용되고 있습니다. 이유는 단독으로 사용하기에 부족한 성능을 가진 디스크를 하나의 논리 디스크로 정렬해서 재활용하는데 목적이 있었기 때문입니다. 디스크…

  • Claude MCP Linux 서버 연결: SSH 설정 방법

    MCP는 클로드를 내 리눅스 서버의 터미널·파일에 연결하는 통로입니다. Claude MCP Linux 서버 연결이 SSH 위에서 어떻게 성립하는지, 무엇이 오가고 무엇은 오가지 않는지 풀어 봅니다. Claude MCP란 Model Context Protocol의 약자로, 클로드가 외부 도구, 데이터베이스, API, 문서 저장소 등과 안전하게 연결되도록 앤트로픽(Anthropic)이 개발한 개방형 표준 통신 규격입니다. Claude MCP가 규약이라면, Claude MCP Server는 전달하는…

  • rm 명령어

    1. rm 명령어 ‘rm 명령어‘ 는 파일 및 디렉토리를 삭제하는 명령어이다. ‘rm 명령어’ 는 심볼릭 링크는 삭제하지만 링크의 대상 파일은 삭제하지 않는다. ls 명령어와 함께 많이 사용되는 명령어이다. rm(remove) 명령어 rm –remove 파일 및 디렉토리 삭제 ~]# rm -i –interactive 기존 파일을 삭제하기 전에 물어본다. inter:매장하다.    active:유효한,능동의 ~]# rm -r –recursive: 재귀 재귀적으로…

  • du 명령어: 파일 디스크 용량 확인

    du 명령어는 disk usage의 줄임말로 파일과 디렉토리의 사용량을 확인할 때 사용하는 명령어입니다. ✅ du 명령어 기본 사용 방법 경로 없이 실행 시 현재 디렉토리(.) 및 하위 k 바이트 단위로 표시됩니다. ✅ du 명령어 옵션 ✅ du 명령어 사용 예시 🔲 디릭토리 + 파일 출력: -a 기본 사용 시 디렉토리만 출력되며, -a 옵션 사용…

  • 리눅스 커널(Kernel)이란? | 커널 버전

    리눅스 커널과 커널은 같은 뜻을 가지고 있습니다. 커널을 말할 때 리눅스 커널을 이야기 하는 것입니다. 핵심(&알맹이)이라는 뜻을 가진 커널(Kernel)은 내부 계층에 속하며, Shell 명령과 하드웨어를 연결해 주는 역할을 합니다. 리눅스 커널(Kernel)의 개념 컴퓨터는 크게 물리적으로 만질 수 있는 하드웨어(키보드, 모니터, 본체:CPU, 메모리 등)와 소프트웨어로 나뉘게 됩니다. 소프트웨어는 운영체제인 윈도우, 리눅스, MacOS 등이며, 추가로…

  • 리눅스 Rsync 명령어

    Rsync (Remote Sync) 는 네트워크를 통해 파일과 디렉터리를 효율적으로 동기화하는 백업 방식입니다. 전체 데이터를 매번 복사하는 대신 변경된 부분만 증분 방식으로 전송하여 빠르고 안정적인 동기화를 지원합니다. 또한 다양한 옵션을 통해 압축, 암호화, 권한 유지, 삭제 동기화 등 세밀한 제어가 가능하며, 백업과 서버 간 데이터 전송에 널리 사용됩니다. 특히 네트워크 대역폭을 절약하고, 재 전송…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 7   +   1   =