본문 바로가기
카테고리 없음

[Linux] Swap 생성 & 용량(공간) 늘리는 법

by 떵해이 2020. 12. 2.
300x250

이전 글을 it-serial.tistory.com/53 참조하시면

swap의 개념에 대해 알 수 있습니다.

그 안에 보시면 swap을 지정하는 방식이 2가지가 있습니다. (swapping 방식)

 

● swapping 사용방식 2가지

 

swap 파티션 방식 -> 디스크 파티션을 나눠서 그 중 한 공간에 sawpping영역 할당

swap 파일 방식 -> 일반적인 파일 시스템에 존재하는 파일을 swapping 영역 사용

 

 

● 목   차 ●

 

1. 기본적으로 사용해야하는 명령어 미리 정리

2. swap 파티션 방식으로 swapping

3. swap 파일 방식으로 swapping

4. 부팅 시 생성한 swap 영역을 자동으로 설정 (영구 등록 방법)

5. swap 용량 제거 방법

 

○ swapping 하면서 필요한 명령어

    ▷ 현재 메모리 상태를 보여주는 명령어

# free [옵션] 

보통 # free -h 명령어로 사람들이 보기 좋게 나옵니다.

 

    ▷ 스왑 영역을 지정하는 명령어

# mkswap [옵션] [스왑 파티션(파일)]

 

    ▷ 스왑 파티션(파일) 활성화 시키는 명령어

# swapon [옵션] [스왑 파티션(파일)]

 

    ▷ 스왑 파티션(파일) 비활성화 시키는 명령어

# swapoff [옵션] [스왑 파티션(파일)]

 

    ▷ 크기를 지정하고 그 크기를 가진 파일을 생성하는 명령어

# dd if=[초기화할 때 사용하는 장치 파일명] of=[생성할 파일명] bs=[블록 크기(미지정 시 단위 바이트]

       count=[bs에 지정한 단위로 블록 갯수]

 

아래에서 같이 사용해보면 쉽습니다. 글로 보면 어려움

 

○ swap 파티션 방식

디스크 추가, 파티션 등 관련된 설명은 it-serial.tistory.com/49 참조하시길 바랍니다.

 

여기서는 바로 설명없이 진행해보도록 하겠습니다.

 

일단 먼저 디스크를 추가해도 되고, 아니면 원래 기존에 남아있는 디스크를 파티션 나눠 사용해도 됩니다.

저는 디스크를 따로 추가하여 그 공간을 파티션을 나눠 swap을 할당해주도록 하겠습니다.

 

① 아래 그림처럼 디스크를 3GB를 추가했습니다. (추가 모르시면 위에 링크 참조하시길 바랍니다.)

 

 

# free -h 명령으로 원래 swap 영역의 공간 확인 (2G인것 확인)

 

 

# fdisk -l 명령으로 추가된 하드 디스크 장치 확인

3GB를 가진 장치명 /dev/sdb/확인

 

 

# fdisk /dev/sdb 명령어로 디스크 설정 모드로 들어갑니다.

여기서는 파티션 만들고 저장 후 나가도록 하겠습니다.

   

n 입력 후 엔터 -> 파티션 생성

p 입력 후 엔터 -> primary 생성

파티션 번호 default로 엔터 -> 엔터하면 기본 1번부터 진행

첫 시작 섹터 지정 엔터 -> 엔터하면 기본2048부터 시작

+2G 입력 후 엔터 -> 용량 2GB로 설정

 

 

 

# p 입력 후 엔터 -> 이제 잘 만들어졌는지 확인

# w 입력 후 엔터 -> 확인 후에 저장하고 디스크 설정 모드 나가기

 

 

⑤ 생성한 파티션에 스왑 영역으로 지정하겠습니다.

# mkswap [옵션] [스왑 파티션(파일)] 명령어로 파티션에 스왑 영역 지정

 

# mkswap /dev/sdb1 명령어로 /dev/sdb1 파티션이 스왑 영역으로 생성

 

 

# free -h 명령어로 스왑 용량이 늘어났는지 확인

추가를 했는데 처음 2GB와 swap이 바뀌지 않음을 확인

 

 

파티션이 스왑 영역으로 지정한 후 사용을 하기위해 따로 활성화(ON)을 시켜줘야 합니다.

# swapon [옵션] [스왑 파티션(파일)] 명령어로 스왑 파티션 활성화

 

# swapon /dev/sdb1 명령어로 /dev/sdb1 스왑 파티션 활성화 ON

# free -h 명령어로 다시 확인

이렇게 하면 스왑영역이 생성되어 늘어난 것을 확인 할 수 있습니다. (4GB로 늘어남)

 

 

※ swap 공간 제거

# swapoff /dev/sdb1 명령을 통해 스왑 비활성화 OFF

# free -h 명령어로 확인하면 비활성화 된 것을 확인

 

○ swap 파일 방식

파일 방식도 파티션 방식과 마찬가지로 디스크를 추가해서 파일을 만들어서 해도 상관없지만

보통 파일 방식을 사용할 때 기존에 있는 디스크로 많이 사용합니다.

 

① 먼저 어디에 만들것인지 정해야 합니다.

일단 저는 /에 디렉토리를 하나 만들어 그 안에 스왑 파일을 만들도록 하겠습니다.

# mkdir /swap

 

 

② 이제 스왑 파일을 생성해줍니다. (특정 파일을 스왑 영역으로 지정하기 위해 최소 200MB이상 권장)

# dd if=/dev/zero of=/swap/swapfile bs=1k count=2097152

 

if= 초기화할 때 사용하는 장치 파일명에 관해 아래에 간단히 설명

 

of= 생성할 파일명 (위에 만든 /swap 안에 파일을 만들기 위해 경로 설정)

      swapfile 이름 바꾸셔도 됩니다. 필자는 흔한 이름을 사용했습니다.

 

bs= 블록 크기, 미지정 시 단위 바이트

      1024로 설정하셔도 되고, 1k로 설정하셔도 같은 값입니다.

      저희는 1024바이트 = 1KB로 크기를 지정한 것입니다.

 

 

count= bs에 지정한 단위로 블록 갯수 (블록 크기를 1KB로 지정)

          1024KB(=1MB) * 1024 = 1048576KB = 1GB (단위 계산은 잘 모르시면 인터넷 보시면 도움됩니다.)

          저희는 swap파일에 2GB를 줄 예정이라 1048576 * 2 = 2097152KB = 2GB의 크기를 준 것

 

※ 8Byte = 8bit(비트)

    1KB = 1024Byte(바이트)

   1MB = 1024KB(킬로바이트)

   1GB = 1024MB(메가바이트)

   1TB(테라바이트) = 1024GB(기가바이트)

이 정도 단위는 알아두시면 도움이 됩니다.

 

※ 위에 설명을 하다가 만 초기화 파일에 관련에 간단하게 설명하겠습니다.

둘 다 블랙홀과 같은 용도입니다.

/dev/null 파일

/dev/zero 파일

2가지 파일 다 역할이 비우는 역할입니다.

 

보통 null같은 경우 # cat /dev/null > *****.log 이런 명령어를 통해 어떤 로그 파일 내용을 비웁니다.

zero도 비슷하게 사용합니다. zero는 더미 파일 or 스왑 만드는데 사용합니다.

null은 비우기만 하고, zero는 비우면서 무수히 많은 0(비트 단위)로 가득채운다고 합니다.

 

자세히 알고 싶으신 분은 검색하시길 바랍니다.

 

 

# ll /swap 명령어로 파일이 잘 생성되었는지 확인

용량도 2GB(2147483648) 조금 넘게 생긴게 보입니다.

 

 

# free -h 명령어로 swap용량 확인

 

 

⑤ 이제 스왑 영역을 지정하고, 스왑 영역 활성화 시킨 뒤 확인까지 해보도록 하겠습니다.

# mkswap /swap/swapfile 명령어로 스왑 영역 지정

# swapon /swap/swapfile 명령어로 스왑 영역 활성화

# free -h swap메모리가 추가 된 것 확인

 

 

※ swap 메모리만 확인하는 명령어

# swapon -s  또는  # cat /proc/swaps

 

○ swap 영역 부팅 시 자동으로 설정

swap영역을 자동으로 설정 등록을 해놓지 않으면 부팅 시에 자동으로 비활성화상태가 됩니다.

 

등록하는 법

# vi /etc/fstab 명령어로 fstab파일 수정모드로 진입

 

 

② [스왑 파티션 or 스왑 파일 경로 (UUID로 등록가능)] swap swap defaults [덤프(백업)유무] [fsck 검사 순서]

위의 순서대로 등록하면 됩니다. 등록하시고 # :wq 명령으로 저장하시고 나오시면 됩니다.

자세한 설명은 it-serial.tistory.com/52 참조하시면 됩니다.

 

그럼 이제 부팅해도 자동으로 등록이 됩니다.

/etc/fstab에서는 파일, 파티션 모두 등록가능 합니다.

 

○ swap 용량 제거

1. 먼저 스왑 영역 활성화를 해제

# swapoff swapfile 

 

2. swapfile을 제거 / 파티션의 경우 파티션 제거

# rm -rf /swap/swapfile

 

3. 부팅 후 스왑 영역 해제 (/etc/fstab)

# vi /etc/fstab 수정 모드로 들어가 swap을 주석처리 하거나 내용을 삭제

 

반응형

댓글