Linux/리눅스 시스템 관리

02-03 스왑(Swap)

easyfly 2022. 3. 10. 06:21
반응형

스왑(Swap)의 개요

  • 시스템이 물리 메모리를 모두 소모하였을 때 스왑을 활용하면 부족한 메모리 공간을 극복하는데 도움이 된다.
  • 시스템이 물리 메모리를 모두 소진하고 더 많은 메모리 공간이 필요할 때 메모리상의 비활성화된 메모리를 스왑 공간으로 이동하여 메모리 공간을 확보하는 기술을 '스왑'이라 한다.
  • 스왑은 물리 메모리보다 액세스 속도는 느리나 가격이 저렴한 하드 용량을 사용한다. 스왑 공간은 swap partition이나 swap file 형태로 만든다.
  • 과거에는 스왑의 크기가 RAM의 크기와 비례해서 증가했다. 요즘 시스템 RAM은 넉넉하기 때문에 스왑 공간의 크기는 시스템이 실제 사용하는 메모리의 양에 근거하여 설정하면 효과적이다.
  • 보통 스왑 공간의 크기는 리눅스 설치 시에 결정한다.

스왑 파일 생성하기

  • 스왑 목적으로 사용할 파일 생성하기
    • dd 명령어를 사용하여 1024000 블록으로 구성된 /swapfile을 생성한다. 블록 한 개의 크기는 1024바이트이다.
  • 스왑 파일의 허가권 설정하기
  • 스왑 파일을 초기화한다.
    • #  mkswap /swapfile3
  • 스왑 파일을 시스템에 인식한다.
    • # swapon /swapfile3
  •  스왑 파일 설정을 영구적으로 저장하기
    • /etc/fstab 파일에 스왑 설정을 추가한다. 시스템을 리부팅해도 스왑 설정은 유지된다.
    • /swapfile3 swap swap defaults 0 0

스왑 파일 삭제하기

  • 스왑 파일 해제
    • # swapoff -v /swapfile3
  • /etc/fstab 항목 삭제
  • 스왑파일 삭제
    • # rm /swapfile3

스왑 파티션 생성하기

  • 새 파티션 생성하기
    • # fdisk /dev/sdc
    • n ->  p -> 1 -> enter -> enter: new, primary partition, partition number
  • 파티션 타입 변경하기
  • 스왑 파티션 초기화하기
    • # mkswap -L MySwap -c /dev/sdc
  • 스왑 파티션 활성화하기
    • 스왑 파일을 시스템에 인식할 때와 마찬가지로 스왑 파티션 /dev/sdc를 활성화한다. 정상 수행되었는지 확인하려면 'swapon -s' 명령어를 사용한다.
  • 스왑 파티션 설정 영구 적용하기
    • /etc/fstab에 등록
      • /dev/sdc swap swap defaults 0 0

스왑 명령어 세부 설명

  • mkswap
    • 지정한 디스크나 파티션에 스왑 영역을 설정하는 명령어
    • 형식: mkswap [option] swap_file 또는 swap_partition
    • 옵션
      • -c, --check: 스왑 영역을 생성하기 전에 배드블록을 체크한다.
      • -L, --label: 라벨을 지정한다. 이 라벨을 통해 swapon 할 수 있다.
      • -f, --force: 지정한 파일이나 파티션보다 더 큰 스왑 영역을 설정하려 할 때 실패 무시하고 수행한다.
    • 예제
      • # mkswap /swap-file 10240
  • swapon
    • 지정한 스왑 파일이나 스왑 파티션에 대한 스왑 기능을 활성화한다.
    • 형식: swapon [option] swap_file 또는 swap_partition
    • 옵션
      • -a, --all: /etc/fstab에 설정된 모든 항목에 대하여 스왑 기능을 활성화한다. 단, nsauto 옵션을 사용한 항목은 제외한다.
      • -s, --summary: 스왑 기능이 활성화된 스왑 파일이나 스왑 파티션의 목록을 출력한다. 'cat /proc/swaps'와 동일한 기능이다.
  • swapoff
    • 지정한 스왑 파일이나 스왑 파티션에 대한 스왑 기능을 비활성화한다.
    • 형식: swapoff [option] swap_file 또는 swap_partition
    • 옵션
      • -a, --all: /etc/fstab상의 모든 항목에 스왑 기능을 비활성화한다.
  • free
    • 물리 메모리의 사용량, 스왑 메모리 사용량, 커널의 메모리 사용량, 사용 가능한 메모리 양 등 메모리의 사용 상태를 출력하는 명령어이다. buffer/cache나 swap의 미사용 중인 메모리가 부족한 경우 메모리 업그레이드를 고려해야 한다. 이 메모리가 부족하면 잦은 하드디스크 접근이 발행하고 성능 저하로 이어진다.
    • 형식: free [option]
    • 옵션
      • -b, --bytes: 메모리 정보를 바이트 단위로 출력한다.
      • -k, --kilo: 킬로 단위로 출력한다.
      • -m, --mega: 메가바이트 단위로 출력한다.
      • -g, --giga: 기가바이트 단위로 출력한다.
      • -h, --human: 알아보기 쉽게 출력한다.
      • -s, --seconds: 지정한 시간(초 단위)마다 출력을 갱신한다.
    • 출력 형식
      • total
      • used
      • free
      • shared
      • buffers
      • cached
      • -/+ buffers/cache
      • Swap
    • 예제
      • # free -hs 1


반응형

'Linux > 리눅스 시스템 관리' 카테고리의 다른 글

02_05 부트 매니저(Boot Manager)  (0) 2022.03.12
02_04 LVM과 RAID  (0) 2022.03.12
02_02_파일 시스템 점검  (0) 2022.03.10
02_01_파일 시스템 관리 및 복구  (0) 2022.03.10
01_02_06_텍스트 관련 명령어  (0) 2022.03.08