본문 바로가기
모의해킹 침해대응 과정/Liunx 관리

리눅스 SWAP / day 10

by 알거음슴 2021. 4. 12.

SWAP(paging space)

파일 시스템의 일종, 디스크 내에 존재하는 가상적인 메모리 공간, 물리적인 메모리(RAM) 의 연장공간 처럼 쓰이는 공간.

프로세스는 실행될 시 RAM에서 실행되어 CPU로 처리됨, 이때 RAM이 pool 의 경우 disk 중 일부공간을 가상메모리 공간으로 활용하여 작업을 지속한다. 이때 ram 과 swap 공간을 오고가는것을 paging 이라고 한다.

* /proc/swaps 를 참조

 

1. swap 관련 이슈 

 - 언제 스왑을 추가하는가 : RAM 의 사용량 증가 추세이며 80% 이상을 점유할때. (90% 가 넘을 시 현저히 느려짐)

 - 스왑 공간의 크기 

1) 초기 설치시 : 하단 스왑 공간 크기의 대한 권장사항표 참고.

2) 운영중 : 운영중인 DB 의 권장 사항에 맞춰서 적용 ( ex) oracle, my sql 등 )

 - 스왑을 추가하면 성능이 좋아지는가 : 성능이 좋아지는것은 아님, 안정성을 위해 (운영체제 ham 등) 추가 필요.

 

[참조] 스왑 공간 크기의 대한 권장 사항. (radhat 기준)

RAM size SWAP size
2GB 이하 RAM x2
2GB ~ 4GB RAM 과 동일
8GB ~ 64GB 4GB 이상
64GB 초과 4GB 이상

 

2. 스왑 추가 방법.

 * 스왑 공간 확인 방법.

free  /  top

cat /proc/swaps

cat /proc/meminfo

[참고] swap Priority : 스왑공간의 우선순위. 낮으면 우선순위가 높고 높으면 우선순위가 낮음.

 

 1) swap file ( ex : /swap/swapfile ) 생성 / 삭제

생성

[root@server1 ~]# free
               total             used        free            shared    buff/cache   available
Mem:        3798428     1352760     1595980       17996      849688     2175000
Swap:       2129916           0         2129916

[root@server1 ~]# mkdir /swap

[root@server1 ~]# dd if=/dev/zero of=/swap/swapfile bs=1024 count=102400 

[root@server1 ~]# mkswap /swap/swapfile

[root@server1 ~]# swapon /swap/swapfile

[root@server1 ~]# free
                total            used         free          shared     buff/cache   available
Mem:        3798428     1361244     1483584      18616      953600     2165592
Swap:       2232312           0         2232312

* 부팅시에도 자동 적용 희망시 /etc/fstap 으로 지정.

/swap/swapfile none    swap    defaults    1   2

 

삭제 

[root@server1 ~]# swapoff /swap/swapfile 

[root@server1 ~]# free
                total           used          free           shared    buff/cache   available
Mem:        3798428     1363712     1477648       18624      957068     2163040
Swap:        2129916           0        2129916

[root@server1 ~]# rm -f /swap/swapfile 

 

 

 2) swap partition ( ex : /dev/sdb1, /dev/vg1/swaplv ) 생성 / 삭제

생성

[root@server1 ~]# cat /proc/swaps 
Filename Type Size Used Priority
/dev/dm-1                               partition 2129916 0 -2

[root@server1 ~]# fdisk /dev/sdb1

Command (m for help): p

Device     Boot Start     End Sectors  Size Id Type
/dev/sdb1        2048 2097151 2095104 1023M 83 Linux

 

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'.

 

Command (m for help): p

 

Device     Boot Start     End Sectors  Size Id Type
/dev/sdb1        2048 2097151 2095104 1023M 82 Linux swap / Solaris

 

Command (m for help): w

 

[root@server1 ~]# mkswap /dev/sdb1
Setting up swapspace version 1, size = 1023 MiB (1072689152 bytes)
no label, UUID=e506efb8-70f0-436e-9d0f-b025b8bc1e20

 

[root@server1 ~]# swapon /dev/sdb1
[root@server1 ~]# cat /proc/swaps 
Filename Type Size Used Priority
/dev/dm-1                               partition 2129916 0 -2
/dev/sdb1                               partition 1047548 0 -3

* 부팅시에도 자동 적용 희망시 /etc/fstap 으로 지정.

/dev/sdb1   none    swap    defaults    1   2

 

삭제

[root@server1 ~]# swapoff /dev/sdb1 
[root@server1 ~]# cat /proc/swaps 
Filename Type Size Used Priority
/dev/dm-1                               partition 2129916 0 -2

 

 

 

스왑 간단하네~