스왑 메모리(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

  • [Linux] lsof 명령어: 실행 중 파일 정보 출력

    lsof 명령어는 lisf open files의 약자로 리눅스 시스템에서 열려 있는 파일의 정보를 출력해 주는 명령어입니다. lsof 명령어는 파일을 포함하여 디렉터리, 네트워크 소켓, 파이프 등 프로세스가 사용 중인 다양한 리소스도 조회할 수 있습니다. ✅ lsof 명령어 기본 구문 명령어만 입력 했을 때는 현재 시스템에서 열린 모든 파일과 관련된 프로세스 정보를 출력합니다. ✅ lsof 명령어…

  • bash: 셸 따옴표 및 셸 쌍따옴표

    bash 및 셸 프로그램에서 명령어를 치환하는데 ‘$’ 기호와 소괄호'()’를 사용하는 대신 따옴표 기호도 사용합니다. 치환은 수식의 어떤 부분에 그와 대등한 무언가로 바꿔 넣는 행위입니다. ‘셸 따옴표’와 ‘셸 쌍따옴표’의 기본 공통 사항은 확장을 제어하는데 활용된다는 것입니다. 여기에서 차이점은 셸 따옴표는 모든 확장을 제어하지만 셸 쌍따옴표는 3개의 기호를 제외하게 됩니다. 셸 쌍따옴표 제외 기호: $…

  • 리눅스 심볼릭 링크(Symbolic Link)와 하드 링크(Hard Link)

    리눅스에서 사용하는 심볼릭 링크(Symbolic Link)는 윈도우에서 사용하는 “바로가기”와 같은 기능을 가지고 있습니다. 소프트 링크 or 심링크로도 불리며, 하나의 파일에 여러 이름으로 생성할 수 있습니다. ✅ 심볼릭 링크 하드 링크 명령어 [-s 옵션]은 Symbolic Link를 만들어 주는 옵션이며 [-s 옵션]이 빠지게 되면 Hard Link를 생성하게 됩니다. ✅ 기존 하드 링크의 단점 Hard Link는 기존…

  • [Linux] access_log 분석[220.23.175.93]

    access_log 분석을 통해 웹 로그가 들어오는 것을 파악. ✅ access_log 분석 기본 httpd.conf에 이미 설정되어 있는 값에 대한 필드 분석. ✅ 명령어 조합을 통한 access_log 분석 1.1 access_log 분석: 날짜+시간대,  awk $IP,국가 1.2 sed 시간대 활용 1.3 [ ] 정규식 및 cut 활용 ✅ 활용 ✅ HTTP 상태 코드 HTTP 상태 코드[RFC 2616…

  • opcache 설치 및 설정

    ▧ opcache 설치 및 설정 opcache 설치 및 설정’ 방법에 대해 …OS : CentOS7php 7.4opcache는 php 엑세스를 가속화하기 위한 것이다. 리눅스 서버의 공유된 메모리에서 php 문서 해석 시간을 줄여 서버의 응답 속도 및 부하를 줄여 성능을 향상 시킨다. Ⅰ. opcache 설치 및 설정 – 설치  1. opcache 설치 확인 php 버전으로 확인  phpinfo.php로…

  • Rocky Linux 설치 (9.5 Ver Minimal) | 이더넷 설정

    VirtualBox로 Rocky Linux 설치(9.5 Ver)를 진행해 보겠습니다. Rocky Linux 설치를 위해 ISO 파일을 다운로드 받은 후 가상 머신을 생성합니다. EFI 활성화를 체크 후 설치 진행을 하겠습니다. ✅ Rocky Linux 설치 Rocky Linux 설치 시작 화면에서 install을 진행합니다. Rocky Linux 설치 시작 후 운영체제가 정상 동작하기 위한 OS부팅 절차가 시작됩니다. 1. 언어 선택 2….

답글 남기기

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

Prove your humanity: 9   +   6   =