Linux_ServerAdmin (7)SWAP관리
SWAP이란?
SWAP? 디스크내에 존재하는 가상적인 메모리 공간, 물리적인 메모리(RAM) 연장 공간처럼 쓰이는 공간
스왑(SWAP)은 메모리 내의 데이터 페이지 또는 세그먼트를 교체하는 것이다. 스왑핑은 컴퓨터가 주기억장치보다 더
큰 프로그램이나 데이터 파일을 다룰 수 있게 하는 유용한 테크닉이다. 운영체계는 주기억장치 내에 가능한 한 많
은 데이터를 복사해 넣고, 나머지는 디스크 상에 남겨둔다. 운영체계가 디스크에 있는 데이터를 필요로할 때, 주기
억장치 내의 데이터 일부를 디스크 상의 데이터와 교체한다. DOS는 스왑핑을 수행하지 않지만, OS/2, 윈도우, 유닉
스 등을 포함한 많은 운영체계들이 스왑핑을 수행한다. 스왑핑은 때로, 페이징이라고 불리기도 한다.
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)
# free
# top -n 1 | head -20
# 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 |
[참고] 스왑의 우선순위(Priority) | |||
# cat /proc/swaps (# swapon -s)
# man swapon
# man 2 swapon
|
(2) 스왑(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
[EX] 스왑 파일 추가 실습
① 스왑 공간 확인
# free
total used free shared buffers cached Mem: 1023864 813064 210800 0 69428 453800 -/+ buffers/cache: 289836 734028 Swap: 1052248 0 1052248 |
# cat /proc/swaps (# swapon -s)
Filename Type Size Used Priority /dev/sda2 partition 1052248 0 -1 |
② 스왑 파일 생성
# mkdir /swap
# dd if=/dev/zero of=/swap/swapfile bs=1024 count=102400
102400+0 records in 102400+0 records out 104857600 bytes (105 MB) copied, 0.714035 seconds, 147 MB/s |
-> (if: input file, of: output file, bs: block size, count: block count)
-> dd명령을 이용해서 swapfile이라는 스왑 파일을 만든다.
-> /dev/zero 포맷으로 /swapdir/swapfile 파일에 대해서 블럭 사이즈는 1024bytes(=sector) 단위로 102400(100M)
개 만큼 채운다.
③ 스왑 영역 지정 및 스왑 활성화(SWAP ON)
# mkswap /swap/swapfile
Setting up swapspace version 1, size = 104853 kB |
[참고] 스왑 파일의 위치는 절대경로/상대경로 모두 지정이 가능
# mkswap /swap/swapfile
or
# cd /swap
# mkswap swapfile
# swapon /swap/swapfile
#
# cat /proc/swaps (# swapon -s)
Filename Type Size Used Priority /dev/sda2 partition 1052248 0 -1 /swap/swapfile file 102392 0 -4 |
# free
total used free shared buffers cached Mem: 1023864 918564 105300 0 69652 556324 -/+ buffers/cache: 292588 731276 Swap: 1154640 0 1154640 |
④ /etc/fstab 파일에 등록
# vi /etc/fstab
..... (중략) ..... LABEL=SWAP-sda2 swap swap defaults 0 0 ..... (중략) ..... # # SWAP Configuration # /swap/swapfile swap swap defaults 0 0 <----- 마지막 라인에 추가 |
-> 부팅시에 swap이 추가 될수 있도록 /etc/fstab 파일의 마지막 라인에 추가한다.
(3) 스왑 삭제 방법
■ 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 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)로 사용되던 파일은 불 필요한 파
일이 된다.
스왑 파티션 추가 (/dev/sdb1)
(전제조건)
/dev/sdb 디스크가 사용중이면 안된다.
# df -h
-> /dev/sdb1(/testmount)
① /dev/sdb 디스크의 system partition id 변경(83 -> 82)
# fdisk -l /dev/sdb
Disk /dev/sdb: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sdb1 1 130 1044193+ 83 Linux |
# fdisk /dev/sdb
-> /dev/sdb1(System Partition ID : 82)
② swapfs 생성
# mkswap /dev/sdb1
Setting up swapspace version 1, size = 1069248 kB |
③ SWAP 활성화 및 확인
# swapon /dev/sdb1
# cat /proc/swaps
Filename Type Size Used Priority /dev/sda2 partition 1052248 0 -1 /dev/sdb1 partition 1044184 0 -3 |
# free
total used free shared buffers cached Mem: 3115336 539752 2575584 0 78596 329252 -/+ buffers/cache: 131904 2983432 Swap: 2096432 0 2096432 |
④ 부팅시의 설정
# vi /etc/fstab
..... (중략) ..... # # SWAP Configuration # /swap/swapfile swap swap defaults 0 0 /dev/sdb1 swap swap defaults 0 0 |
⑤ swap 삭제
# cat /proc/swaps
Filename Type Size Used Priority /dev/sda2 partition 1052248 0 -1 /dev/sdb1 partition 1044184 0 -3 |
# swapoff /dev/sdb1
# cat /proc/swaps
Filename Type Size Used Priority /dev/sda2 partition 1052248 0 -1 |
# free
total used free shared buffers cached Mem: 3115336 485912 2629424 0 32852 328492 -/+ buffers/cache: 124568 2990768 Swap: 1052248 0 1052248 |
# vi /etc/fstab
..... (중략) ..... # # SWAP Configuration # #/swap/swapfile swap swap defaults 0 0 #/dev/sdb1 swap swap defaults 0 0 |
# fdisk /dev/sdb
/dev/sdb1(System Partition ID :83)
# mkfs.ext3 /dev/sdb1
[참고] SWAP 추가하는 경우
MEM 사용량 80% 이상 -> SWAP 공간 추가(File or Partition) -> 결정(EX: /swap/swapfile)
(정리) SWAP File 추가하는 방법
(ㄱ) 큰 파일 생성
# mkdir /swap
# dd if=/dev/zero of=/swap/swapfile bs=1024 count=102400
(ㄴ) swapfs 파일시스템 생성
# mkswap /swap/swapfile
(ㄷ) SWAP ON
# swapon /swap/swapfile
(ㄹ) /etc/fstab 편집
# vi /etc/fstab
/swap/swapfile swap swap defaults 0 0
SWAP File 삭제하는 방법
(ㄱ) SWAP OFF
# swapoff /swap/swapfile
(ㄴ) /etc/fstab 편집
# vi /etc/fstab
(ㄷ) 스왑 파일 삭제
# rm /swap/swapfile
SWAP 확인 방법
# free
# cat /proc/swaps
# top
'Learning > └Essential & Admin' 카테고리의 다른 글
Linux_ServerAdmin (9) 리눅스 부팅과정 (0) | 2016.11.04 |
---|---|
Linux_ServerAdmin (8)Software관리 (0) | 2016.11.03 |
Linux_ServerAdmin (6)RAID관리 (0) | 2016.10.31 |
Linux_ServerAdmin (5)LVM관리 (0) | 2016.10.31 |