-
SWAP 관리linux/centOS 2018. 6. 27. 11:32
☆ swap 이란?
디스크내에 존재하는 가상적인 메모리 공간, 물리적인 메모리(RAM) 연장 공간처럼 쓰이는 공간
스왑(SWAP)은 메모리 내의 데이터 페이지 또는 세그먼트를 교체하는 것이다. 스왑핑은 컴퓨터가 주기억장치보다 더
큰 프로그램이나 데이터 파일을 다룰 수 있게 하는 유용한 테크닉이다. 운영체계는 주기억장치 내에 가능한 한 많
은 데이터를 복사해 넣고, 나머지는 디스크 상에 남겨둔다. 운영체계가 디스크에 있는 데이터를 필요로할 때, 주기
억장치 내의 데이터 일부를 디스크 상의 데이터와 교체한다. DOS는 스왑핑을 수행하지 않지만, OS/2, 윈도우, 유닉
스 등을 포함한 많은 운영체계들이 스왑핑을 수행한다. 스왑핑은 때로, 페이징이라고 불리기도 한다.
■ 스왑 관련 이슈(SWAP Issue)?
- 언제 스왑을 추가하는가? 메모리사용량이 80퍼센트 이상 차기 시작할 때
- 스왑 공간의 크기?
(초기 설치시)
(운영시) 두 번 하기 힘들기 때문에 넉넉히 주는게 좋다. 추후에 줄일 수 있기 때문이다.
- 스왑을 추가하면 성능이 좋아지는가? 성능이 좋아지는 것은 아니다. 메모리가 100퍼센트 차고 swap공간까지
100퍼센트 차게되면 서버가 멈추게 된다. 스왑공간이 있어야 늦게라도 실행이 되어 운영체제가 멈추지 않게
하기 위해서다.
■ 스왑 공간 크기에 대한 권장사항
--------------------------------------------
RAM SIZE SWAP SIZE
--------------------------------------------
4GB 이하이면 minimum 2GB
4GB ~ 16GB minimum 4GB
16GB ~ 64GB minimum 8GB
64GB ~ 256GB minimum 16GB
256G ~ 512GB minimum 32GB
--------------------------------------------
☆ swap 관리
■ SWAP 추가 방법
- SWAP File(EX: /swap/swapfile)
(ㄱ) 큰 파일 생성
# dd if=/dev/zero of=/swap/swapfile bs=1M count=10240
(ㄴ) 스왑 파일시스템 생성(swapfs)
# mkswap /swap/swapfile
(ㄷ) 스왑 Activate(swap on)
# swapon /swap/swapfile
(ㄹ) /etc/fstab 파일 설정
# vi /etc/fstab
- SWAP Partition(EX: /dev/sdb1)
(ㄱ) 파티션 준비
# fdisk /dev/sdb (System Partition ID : 82)
(ㄴ) 스왑 파일시스템 생성(swapfs)
# mkswap /dev/sdb1
(ㄷ) 스왑 ON(swap on)
# swapon /dev/sdb1
(ㄹ) /etc/fstab 파일 설정
# vi /etc/fstab
(1) 스왑 확인 방법
현재 스왑 공간(스왑 공간, 스왑 전체크기, 스왑사용량)을 확인하는 방법은
(ㄱ) free 명령어를 사용하는 방법이나
(ㄴ) top 명령어를 통해 확인하는 방법
(ㄷ) /proc/swaps 파일을 확인하는 방법
(ㄹ) /proc/meminfo 파일을 확인하는 방법
등이 있다.
스왑을 추가하고 확인하거나 스왑을 삭제하고 확인할 때는 /proc/swaps 또는 free 명령어를 사용하는 방법이 적
당하다. 스왑 사용량을 모니터링 할 때는 top 명령어를 사용하는 것이 좋다.
[EX] 스왑 공간/스왑 용량/스왑 사용량 확인
# cat /proc/swaps (# swapon -s)
Filename Type Size Used Priority
/dev/sda2 partition 1052248 0 -1
# free
total used free shared buffers cached
Mem: 1023864 809732 214132 0 69000 452540
-/+ buffers/cache: 288192 735672
Swap: 1052248 0 1052248
# top -n 1 | head -20
top - 13:42:00 up 3:40, 2 users, load average: 0.00, 0.00, 0.00
Tasks: 177 total, 1 running, 175 sleeping, 0 stopped, 1 zombie
Cpu(s): 0.1%us, 0.2%sy, 0.0%ni, 99.1%id, 0.5%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1023864k total, 811448k used, 212416k free, 69128k buffers
Swap: 1052248k total, 0k used, 1052248k free, 453584k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 15 0 10368 700 588 S 0.0 0.1 0:00.95 init
2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/1
5 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/1
6 root RT -5 0 0 0 S 0.0 0.0 0:00.01 migration/2
7 root 34 19 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/2
8 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/3
9 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/3
10 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 events/0
11 root 10 -5 0 0 0 S 0.0 0.0 0:00.15 events/1
12 root 10 -5 0 0 0 S 0.0 0.0 0:05.99 events/2
13 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 events/3
# cat /proc/meminfo
MemTotal: 1023864 kB
MemFree: 212184 kB
Buffers: 69160 kB
Cached: 453584 kB
SwapCached: 0 kB
Active: 306904 kB
Inactive: 383868 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 1023864 kB
LowFree: 212184 kB
SwapTotal: 1052248 kB <----- 전체 스왑량
SwapFree: 1052248 kB <----- 남은 스왑량
Dirty: 44 kB
Writeback: 0 kB
AnonPages: 168020 kB
Mapped: 56132 kB
Slab: 75588 kB
PageTables: 22208 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 1564180 kB
Committed_AS: 497300 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 263560 kB
VmallocChunk: 34359474419 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
Hugepagesize: 2048 kB
☆ swap 추가 방법
스왑은 파일 형태와 파티션 형태로 추가가 가능하며, 스왑을 현재 추가 할때는 mkswap, swapon 명령어를 사용하고
부팅시에 스왑을 마운트 할 수 있도록 하기 위해서는 /etc/fstab 파일을 사용한다. 스왑 관리에 관련된 명령어는
dd, mkswap, swapon, swapoff, rm 명령어등이 있다.
■ SWAP 추가 방법
- SWAP File(EX: /swap/swapfile)
# dd if=/dev/zero of=/swap/swapfile bs=1M count=10240
# mkswap /swap/swapfile
# swapon /swap/swapfile
# vi /etc/fstab
- SWAP Partition(EX: /dev/sdb1)
# fdisk /dev/sdb (System ID : 82)
# mkswap /dev/sdb1
# swapon /dev/sdb1
# vi /etc/fstab
☆ SWAP 삭제 방법
SWAP 추가 방법
- SWAP File(EX: /swap/swapfile)
# dd if=/dev/zero of=/swap/swapfile bs=1M count=10240
# mkswap /swap/swapfile
# swapon /swap/swapfile
# vi /etc/fstab
# swapoff /swap/swapfile
# vi /etc/fstab
- SWAP Partition(EX: /dev/sdb1)
# fdisk /dev/sdb (System ID : 82)
# mkswap /dev/sdb1
# swapon /dev/sdb1
# vi /etc/fstab
# swapoff /dev/sdb1
# vi /etc/fstab
[EX] 스왑(SWAP) 파일 삭제
① 스왑 비활성화 및 확인(SWAP OFF)
# cat /proc/swaps
Filename Type Size Used Priority
/dev/sda2 partition 1052248 0 -1
/swap/swapfile file 102392 0 -2
# swapoff /swap/swapfile
# cat /proc/swaps (# swapon -s)
Filename Type Size Used Priority
/dev/sda2 partition 1052248 0 -1
# free (# free -m : MegaBytes)
total used free shared buffers cached
Mem: 1023864 919108 104756 0 70000 556356
-/+ buffers/cache: 292752 731112
Swap: 1052248 0 1052248
② 스왑 파일 삭제
# ls -lh /swap
-rw-r--r-- 1 root root 100M 8월 6 13:52 swapfile
# rm /swap/swapfile
#
-> /swap/swapfile을 SWAP ON 되었을때 자동으로 삭제되는 파일이 아니다. 따라서 별도로 삭제 해 줘야 한다.
-> 스왑으로 사용되고 있던 파일이 SWAP OFF 되면 스왑파일(예: /swap/swapfile)로 사용되던 파일은 불 필요한 파
일이 된다.
'linux > centOS' 카테고리의 다른 글
소프트웨어 관리 2 (0) 2018.07.02 소프트웨어 관리 1 (0) 2018.06.29 RAID 관리 (0) 2018.06.26 LVM 생성 및 관리 (0) 2018.06.22 마운트 관리 (0) 2018.06.21