귀염둥이의 메모

[Linux / CentOS 7] 스왑 파티션(Swap Partition) 지정하기, 가상 메모리(Virtual Memory) 본문

Infra & Devops/Linux

[Linux / CentOS 7] 스왑 파티션(Swap Partition) 지정하기, 가상 메모리(Virtual Memory)

겸둥이xz 2021. 8. 29. 13:01
반응형

물리 메모리인 RAN의 용량 확장에는 많은 제약이 있다. 같은 용량의 디스크에 비해 가격이 매우 비싸고, 시스템 메인보드에 연결할 수 있는 슬롯에도 제한이 있어 무한정 확장이 불가능하다.

물리 메모리가 부족한 경우를 해결하기 위해 운영체제가 사용하는 방법은 가상 메모리(Virtual Memory)이다.

  • 가상 메모리는 RAM + 스왑(SWAP)이다. 스왑은 디스크 장치에 생성되는 영역을 의미한다
  • 윈도우에서는 페이징(Paging) 파일 관리를 하고, 리눅스에서는 스왑 파티션 영역이 있다
  • 운영체제의 가상 메모리를 관리하는 가상메모리 관리자는 물리 메모리와 스왑 영역을 합산하여 가상 메모리로 사용한다

스왑 영역을 물리 메모리처럼 사용할 수 있다고 해서, CPU가 스왑 영역에 있는 데이터를 직접 접근하여 읽을 수 있는 것은 아니다.

CPU가 데이터 접근을 위해서 프로세스가 반드시 물리 메모리 영역에 존재해야 하고, 이때 만약 프로세스가 스왑 영역에 존재한다면 스왑 영역의 데이터를 물리 메모리 영역으로 Swap-In(Paged-In)하는 작업이 필요하다. 반대로 물리 메모리에 존재하는 프로세스의 우선순위가 낮거나 당분간 사용하지 않을 경우에는 다른 프로세스를 위해서 물리 메모리를 스왑 영역으로 Swap-Out(Paged-In) 해야 한다.

 

스왑 파티션 생성

  • 현재 sdb에 두 개의 파티션이 존재하는데 sdb2 파티션을 제거하고 스왑 파티션을 지정해보자

 

파티션 제거

  • fdisk 명령어로 sdb2 파티션을 제거했다

 

스왑 영역을 위한 파티션 생성

  • 스왑 영역을 위해 500M의 sdb2 파티션을생성했다

 

파티션 타입 코드 확인

  • 스왑 영역으로 사용하기 위해 파티션 타입을 스왑 장치용 파티션으로 설정해야 한다
  • l 명령을 사용하면 사용 가능한 타입을 조회할 수 있다
  • 82번 Linux swap / So 파티션을 사용한다

 

스왑 타입으로 변경

  • t 명령으로 타입을 변경했다
  • p 명령으로 확인해보면 Linux swap으로 변경되었다
  • w 명령으로 저장해준다

 

스왑 영역 생성하기

  • files -s /dev/sdb2 명령으로 확인하면 data 유형으로 출력된다
  • sdb2 파티션에 아직 스왑 영역이 생성되지 않았기 때문이다
  • mkswap 명령을 사용하여 파티션 장치를 지정하면 스왑 영역이 생성된다

 

스왑 영역 활성화

  • 스왑도 파일 시스템과 파일 시스템에 등록하지 않으면 재부팅 시 활성화되지 않는다
  • /etc/fstab을 직접 수정해도 가능하지만 swapon -a /dev/sdb2 명령으로 활성화 가능하다

참고자료

  • 테크넷과 함께하는 엔터프라이즈 리눅스 햄식 운영 가이드 vol. 1

 

반응형
Comments