Linux Swap 파일 삭제 및 재생성 방법
🥑 들어가며
메모리를 확인하니 스왑 파일을 삭제하고 다시 만들어야할 것 같다.
1
2
3
4
$ free -h
total used free shared buff/cache available
Mem: 9.5Gi 3.8Gi 4.3Gi 128Mi 1.4Gi 5.3Gi
Swap: 4.0Gi 2.1Gi 1.9Gi
스왑 파일을 삭제할 일이 종종 있는데 계속 찾기가 귀찮아졌다. 많이 쓰면 외워지겠지만 스왑 파일 초기화를 외울 일이 많으면 안되지 않을까..
Swap File이란?
리눅스와 같은 운영체제에서 RAM(주기억장치)이 부족할 때 임시로 사용하는 가상 메모리 영역이다. 쉽게 말해, 물리 메모리(RAM)가 다 차면 스왑 파일에 데이터를 저장해서 시스템의 안정성과 성능을 유지하는 역할을 한다.
스왑의 동작 원리
- 메모리 부족 상황 발생 시, 사용 빈도가 낮은 데이터나 프로그램을 RAM에서 스왑 파일로 옮김.
- 이로 인해 RAM의 여유 공간을 확보해 현재 실행 중인 중요한 작업이 중단되지 않도록 보장.
- 필요해지면 스왑 파일에 있는 데이터를 다시 RAM으로 불러옴.
스왑 공간의 종류
- 스왑 파티션: 디스크의 특정 파티션을 스왑 용도로 사용.
- 스왑 파일: 기존 파일 시스템 내에서 파일을 만들어 스왑 용도로 사용. (더 유연하게 크기를 조정할 수 있다.)
스왑 파일의 필요성
- 메모리 부족: RAM이 부족한 경우, 시스템이 멈추지 않고 작업을 지속하게 해줌.
- 멀티태스킹: 여러 프로세스가 동시에 실행될 때 사용 빈도가 낮은 프로세스를 스왑 파일로 옮겨 메모리를 확보.
- 서버 운영: 서버에서는 메모리 부족으로 인한 서비스 중단을 방지하기 위해 스왑을 사용하는 경우가 많음.
스왑 파일의 장점과 단점
- 장점:
- RAM이 부족해도 시스템이 안정적으로 유지됨.
- 스왑 파일 크기 조정이 쉽고 유연함.
- 메모리가 부족한 순간에도 프로그램이 종료되지 않음.
- 단점:
- 디스크 속도가 느리기 때문에 스왑 파일을 사용하는 순간 성능 저하가 발생.
- 너무 의존할 경우 시스템이 느려지고, 과도한 스왑 사용으로 인해 “스왑 스로싱(Swap Thrashing)” 현상이 나타날 수 있음 (스왑과 RAM 간의 빈번한 데이터 이동으로 성능이 크게 저하됨).
언제 스왑 파일을 사용해야 할까?
- RAM이 충분하지 않거나 자주 부족한 경우.
- 서버나 개발 환경에서 갑작스런 메모리 부족 상황에 대비할 때.
- 램 확장이 불가능한 임베디드 시스템 등에서 가상 메모리로 활용.
SwapFile 초기화
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 스왑 활성화 여부 확인
$ swapon --show
NAME TYPE SIZE USED PRIO
/swapfile2 file 2G 1.5G -2
/swapfile file 2G 548.5M -3
# 현재 스왑 파일 비활성화
$ sudo swapoff -v /swapfile2
swapoff /swapfile2
# 기존 스왑 파일 삭제
$ sudo rm -f /swapfile2
rm: remove 일반 파일 '/swapfile2'? y
# 새 스왑 파일 생성
$ sudo fallocate -l 2G /swapfile2
# 스왑 파일 권한 설정
$ sudo chmod 600 /swapfile2
# 스왑 영역으로 초기화
$ sudo mkswap /swapfile2
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=3c4ef0a3-c8c8-4414-b210-b69c3c86e4a3
# 스왑 파일 활성화
$ sudo swapon /swapfile2
# 스왑 활성화 여부 확인
$ swapon --show
이제 다시 메모리를 확인해보자
1
2
3
4
5
6
7
8
9
10
11
# before
$ free -h
total used free shared buff/cache available
Mem: 9.5Gi 3.8Gi 4.3Gi 128Mi 1.4Gi 5.3Gi
Swap: 4.0Gi 2.1Gi 1.9Gi
# after
$ free -h
total used free shared buff/cache available
Mem: 9.5Gi 5.7Gi 2.3Gi 201Mi 1.5Gi 3.3Gi
Swap: 4.0Gi 548Mi 3.5Gi
This post is licensed under CC BY 4.0 by the author.