별의 공부 블로그 🧑🏻‍💻
728x90
728x170

스왑(Swap)

스왑(Swap)의 개요

  • 하드 디스크의 일부를 마치 메모리처럼 사용하게 해주는 기술
  • 일반적으로 리눅스 설치 시에 설정한다.
  • 스왑 영역이 부족한 경우, 리눅스 설치 후에도 디스크의 남은 공간이나 파티션을 이용해서 추가 설정할 수 있다.

 

관련 명령어

① mkswap

  • 스왑 파티션이나 스왑 파일을 생성하는 명령

 

사용법

# mkswap [option] 스왑_파일 [size]
# mkswap [option] 스왑_파티션

 

주요 옵션

주요 옵션 설명
-c 스왑 파티션을 생성하기 전에 배드 블록(Bad Block)을 검사해주는 옵션

 

사용 예

  • 10240K 크기의 /swap-file을 생성
  • 크기를 나타내는 10240은 생략 가능
# mkswap /swap-file 10240

 

  • /dev/sdb2의 배드 블록 여부를 검사한 후에 스왑 파티션으로 생성
# mkswap -c /dev/sdb2

 

② swapon

  • 스왑 파티션이나 스왑 파일을 활성화시키는 명령
  • 스왑의 상태 확인도 가능

 

사용법

# swapon [option] 스왑_파일
# swapon [option] 스왑_파티션

 

주요 옵션

주요 옵션 설명
-a /etc/fstab 파일에 등록된 스왑 영역을 전부 활성화시킴. (noauto 옵션이 설정된 경우는 제외)
-s 스왑 영역의 상태 출력

 

사용 예

  • /swap-file 활성화
# swapon /swap-file

 

  •  /dev/sdb2 활성화
# swapon /dev/sdb2

 

  • /etc/fstab 파일에 설정된 스왑 영역을 전부 활성화
# swapon -a

 

  • 현재 스왑 상태 출력
# swapon -s

 

③ swapoff

  • 활성화된 스왑 파티션이나 스왑 파일을 중지시키는 명령

 

사용법

# swapoff [option] 스왑_파일
# swapoff [option] 스왑_파티션

 

주요 옵션

주요 옵션 설명
-a 모든 스왑 영역을 중지시킴.

 

사용 예

  • /swap-file을 중지시킴.
# swapoff /swap-file

 

  • 모든 스왑 영역을 중지시킴.
# swapoff -a

 

④ free

  • 현재 사용 중인 메모리의 상태를 출력 해주는 명령

 

사용법

$ free [option]

 

주요 옵션

옵션 설명
-m 메모리의 상태를 MB 단위로 출력
-k 메모리의 상태를 KB 단위로 출력
-h - 사람들이 보기 편하게 다음과 같은 단위를 붙여서 출력함.
B : Bytes
K : Kilos
M : Megas
G : Gigas
T : Teras
- --human
  •  

 

사용 예

$ free -m
              total        used        free      shared  buff/cache   available
Mem:           1819         805         335          22         678         831
-/+ buffers/cache:          429        7376
Swap:          2047           0        2047
  • Mem
    • 물리적 메모리의 상태를 나타내는 부분
    • total : 전체 메모리 용량
    • used : 사용 중인 메모리 용량
    • free : 사용되지 않고 있는 메모리 용량
    • shared : 프로세스간 공유되고 있는 메모리 용량
    • buffers : 버퍼 메모리로 사용되는 양
    • cached : 캐시 메모리로 사용되는 메모리 용량
  • -/+ buffers/cache
    • 버퍼나 캐시 메모리로 사용되는 영역을 제외하고 실제 사용 중인 메모리와 남은 영역을 출력
  • Swap
    • 스왑 영역의 메모리 상태를 나타내는 부분
    • used : 사용 중인 스왑 메모리의 용량
    • free : 사용되지 않고 있는 스왑 메모리의 용량

 

스왑 영역 만들기

(1) 스왑 파일 생성하기

 dd 명령을 이용하여 원하는 파일의 크기만큼 스왑 파일을 생성한다.

# dd if=/dev/zero of=/swap-file bs=1k count=1024000
  • if에 사용한 /dev/zero : 이름 그대로 초기화할 때 사용하는 장치 파일명
  • of : 생성할 파일명을 입력
  • bs : 블록 크기를 지정하는 항목으로 단위를 붙이지 않으면 바이트로 처리
  • count : bs에 설정한 블록의 개수 (1GB)

 

② 스왑 파일 생성

# mkswap /swap-file

 

③ 스왑 파일 활성화

# swapon /swap-file

 

④ 시스템 부팅 시마다 사용할 경우에는 /etc/fstab 파일에 등록

/swap-file      swap    swap      defaults     0  0

 

(2) 스왑 파티션 생성하기

 fdisk 명령을 이용하여 스왑 파티션 생성

# fdisk /dev/sdb
  • 파티션 분할 생성 후에 t 명령을 이용해서 파티션의 속성을 스왑 영역의 코드인 82로 입력해야 함.
  • 여기서 /dev/sdb2로 생성했다고 가정함.

 

② 스왑 파티션 생성

# mkswap -c /dev/sdb2

 

③ 스왑 파티션 활성화

# swapon /dev/sdb2

 

④ 시스템 부팅 시마다 사용할 경우에는 /etc/fstab 파일에 등록

/dev/sdb2      swap    swap      defaults     0  0

 

문제 해결 전략

  • 스왑과 관련된 명령어를 암기한 후, 필요할 때마다 man 명령어를 사용하여 메뉴얼을 확인해가며 문제를 해결한다.
  • 스왑 파일/파티션을 생성하는 과정을 암기한다.

 

문제 유형

① dd 명령어를 사용하여 스왑 파일을 조건에 맞게 생성하는 문제

  • man dd 명령어를 사용하여 메뉴얼을 보며 문제를 해결한다.
  • if = input file, of = output file 
# dd (  if=/dev/zero  ) (  of=/swap_file  ) (  bs=1k(1024/1000/1KB)  ) (  count=1024000(1000000)  )

 

728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️


📖 Contents 📖