✅ Swap Memory란 ?
- 물리적 디스크 공간을 메모리 공간처럼 사용하는 방식
- 메모리에 발생하는 부하를 줄여주는 방법이다.
- 시스템 RAM + 스왑 공간 => 가상 메모리
✅ 원리
- 현재 메모리에 P1, P2, P3 사용 중이고 메모리는 모두 사용 중이며 새로운 P4를 메모리에 올려야 한다고 가정하자
- 기존 프로세스 중 가장 오래되고 가장 중요도가 적은 프로세스를 swap 영역으로 전환한다.
- 기존 메모리에 여유 공간이 생긴다.
- 남는 메모리 영역에 새로운 P4를 올려서 사용한다.
- 작업이 끝나고 메모리에 공간이 나게되면 스왑 영역에 있던 프로세스를 다시 M영역으로 올린다.
✅ 특징
- swap은 디렉토리 구조로 접근하지 않기 때문에 마운트포인트를 swap으로 지정한다.
- 스왑 공간은 백업 및 파일 시스템 점검이 필요없다.
✅ swap 관련 명령어
- free : 스왑 공간 확인
- mkswap 파티션명 : 스왑 메모리 생성
- swapon 파티션명 : 스왑 메모리 활성화
- swapon 파티션명 : 수동 스왑 마운트
- swapoff 파티션명 : 수동 스왑 마운트 해제
- swapon -a : 설정된 스왑 마운트 확인
- swapoff -a : 모든 스왑 마운트 해제
✅ swap memory 사용 예시
- free 명령어로 사용 스왑 공간 확인
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 2047700 371324 1328456 9592 347920 1487688
Swap: 4194300 0 4194300
Swap 영역의 total이 4G로 설정되어 있으며 사용되고 있는 용량은 0임을 알 수 있다.
- 새로 만든 파티션을 스왑 영역으로 저장
[root@localhost ~]# mkswap -c /dev/sdb3
0 bad pages
Setting up swapspace version 1, size = 6291452 KiB
no label, UUID=bc89c813-68d6-4ad2-be70-cb224f349af7
파티셔닝을 통해 만든 /dev/sdb3를 스왑 영역으로 사용하기위해 스왑 메모리로 지정한다.
- free 명령어로 스왑 영역 재확인
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 2047700 356828 1533372 9584 157500 1515204
Swap: 10485752 0 10485752
새롭게 스왑 영역으로 만든 /dev/sdb3의 용량이 6G로 설정되어 있기 때문에 free를 입력했을 때 Swap 영역이 4194300에서 10485752로 늘어나 있는 것을 확인할 수 있다.
- swapon 명령어로 활성화
[root@localhost ~]# swapon /dev/sdb3
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 2047700 356828 1533372 9584 157500 1515204
Swap: 10485752 0 10485752
[root@localhost ~]# swapon -s
Filename Type Size Used Priority
/dev/sdb3 partition 6291452 0 -1
swapon 명령어를 통해 /dev/sdb3를 스왑 메모리로 활성화 시킨다. swapon -s 명령을 통해 /dev/sdb3가 스왑 영역으로 사용되고 있음을 확인할 수 있다.
- swapoff 명령어로 비활성화
[root@localhost ~]# swapoff /dev/sdb3
[root@localhost ~]# swapon -s
Filename Type Size Used Priority
/dev/sda1 partition 4194300 0 -1
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 2047700 410888 1354076 9584 282736 1429908
Swap: 4194300 0 4194300
swapoff 명령을 통해 /dev/sdb3을 스왑 영역에서 해제한다.
- /etc/fstab으로 영구적 활성화
스왑 메모리 추가를 완료한 후 시스템을 재부팅하면 추가한 메모리에 대해 다시 sawpon 명령어를 적용해야한다.
따라서 /etc/fstab 파일에 swap 파티션을 추가한 뒤 /etc/rc.d/rc.local 파일에 "swapon /dev/sdb3" 이라고 입력해두면 부팅시마다 해당 스왑 메모리를 활성화할 것이다.
방법 1) UUID를 이용하여 스왑 마운트 설정
[root@localhost ~]# blkid
/dev/sda1: UUID="88f82736-89b0-49e6-88c5-165c88bcc5bf" TYPE="swap"
/dev/sda2: UUID="231c776b-3197-4e9f-a142-6b80be0ca930" TYPE="xfs"
/dev/sdb3: UUID="bc89c813-68d6-4ad2-be70-cb224f349af7" TYPE="swap"
blkid로 마운트하고자 하는 파티션의 UUID를 복사한다.
vi /etc/fstab
파일 시스템 장치명 | 마운트 포인트 | 파일 시스템 종류 | 옵션 | 덤프 여부 | 파일 체크 옵션 |
vi 편집기를 열어 순서대로 UUID, swap, swap, defaults, 0, 0을 입력한다.
2) 파티션 명으로 자동 스왑 마운트 설정
UUID 대신에 파티션 명을 기입
- 모든 스왑 마운트 해제
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 2047700 410912 1347164 9588 289624 1429820
Swap: 4194300 0 4194300
[root@localhost ~]# swapon /dev/sdb3
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 2047700 415756 1342316 9588 289628 1424976
Swap: 10485752 0 10485752
[root@localhost ~]# swapoff -a
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 2047700 410860 1348252 9588 288588 1429876
Swap: 0 0 0
[root@localhost ~]# swapon -s
[root@localhost ~]# swapon -a
[root@localhost ~]# free
total used free shared buff/cache available
Mem: 2047700 410968 1348140 9588 288592 1429768
Swap: 4194300 0 4194300
[root@localhost ~]# swapon -s
Filename Type Size Used Priority
/dev/sda1 partition 4194300 0 -1
/dev/sdb1 의 스왑은 수동으로 마운트 한 것이기 때문에 마운트가 안된다.
'Linux' 카테고리의 다른 글
[Linux] LVM 명령어 실습 (0) | 2022.02.25 |
---|---|
[Linux] LVM - Logical Volume Management (0) | 2022.02.25 |
[Linux] 리눅스 명령어 - at, atd, cron, crontab (작업 스케줄링) (0) | 2022.02.24 |
[Linux] 리눅스 명령어 - 시스템 디스크 명령어 (0) | 2022.02.24 |
[Linux] 하드링크와 심볼릭링크 (0) | 2022.02.24 |
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!