Linux 스왑 공간 증가(Increase Swap Space)

반응형

리눅스에서의 스왑 공간(swap space) 

리눅스에서 스왑 공간(swap space)은 물리적 메모리(RAM)의 용량이 가득 차게 될 경우 사용되는 여유 공간을 말합니다. 즉, 시스템이 처리하고 있는 데이터를 저장할 RAM이 충분하지 않을 때 스왑 공간에 이 데이터를 기록합니다. Ubuntu, Oracle Linux 설치 시 설치프로그램이 제안하는 기본 파티션으로 설치하면 스왑 공간 없이 OS 설치가 완료됩니다.

요즘같이 대용량 메모리를 사용하는 시대에 스왑 공간은 필요없을 수 있지만 DBMS와 같은 일부 응용프로그램에서는 설치단계에서 스왑 공간이 없으면 설치를 진행할 수 없습니다. 이럴 경우 스왑 파일을 직접 생성하고, 초기화 및 사용으로 설정하여 스왑 공간의 양을 늘릴 수 있습니다.

스왑 공간이 없어서 설치를 못한다고 합니다.

1. root 계정으로 전환하여 스왑 공간의 양을 확인

(sudoers group에 포함되어 있는 계정에서) sudo -i 또는 sudo - root 실행 후 아래 명령어들로 스왑 공간을 확인합니다.

  • grep -i swap /proc/meminfo
  • free -h
  • swapon -s

free 로 확인한 swap 공간 크기가 0

2. dd 명령을 사용하여 스왑 파일을 만들고 스왑파일 초기화 후 사용으로 설정

  1.  dd if=/dev/zero of=/.swapfile bs=4096 count=2097152
  2. mkswap /.swapfile
  3. chmod 600 /.swapfile
  4. swapon /.swapfile

if: 입력파일입니다. /dev/zero는 0바이트 스트림을 제공합니다.

of: 출력파일입니다. 루트 디렉터리에 숨김파일로 swapfile을 생성합니다.

bs: 블록 크기(바이트 단위)입니다. 한 번에 입력 파일에서 읽고 출력 파일에 쓸 바이트 수입니다.

count: 읽고 쓸 블록 수입니다. 이 숫자에 bs 값을 곱해 파일 크기를 구하게 됩니다. 4k 쓰기 단위에서 1GB 스왑 파일을 만들려면 count가 262144인데 8GB 크기를 만들 것이므로 262144 x 8 = 2097152로 정했습니다.

mkswap으로 dd로 생성한 파일을 스왑파일 포맷으로 변경합니다.

dd로 파일 생성 시 644 권한으로 생성되는데 insecure permissions 경고가 발생하므로 root만 swapfile을 읽고 쓸 수 있도록 600으로 권한을 변경합니다.

swapon으로 새 스왑 파일이 있음을 Linux에 알려줍니다. 그럼 swap 파일이 활성화됩니다.

dd 실행 결과

 

실제 생성된 swapfile 확인
swapon 까지 실행 후 free 로 확인하면 Swap 영역이 보입니다

3. fstab에 스왑 파일(Swap file) 추가

(2)까지 진행 후 재부팅하고 보면 Swap Space가 비활성화되어 있습니다. 재부팅 후에도 스왑 영역이 유지되도록 /etc/fstab에 추가해야 합니다. "vi /etc/fstab"으로 파일을 열어 편집하세요.

"/.swapfile none swap sw 0 0" 을 맨 아랫줄에 추가하고 "wq" 명령으로 저장 후 종료합니다.

/etc/fstab 맨 아랫줄 확인

fstab 필드는 다음과 같습니다.

  • 파일 시스템: /.swapfile
  • 마운트 지점: 파일시스템처럼 마운트 하지 않았으므로 none
  • 유형: swap
  • 옵션: 기본값 sw
  • 덤프: 0 해당 없음
  • 통과: 0 해당 없음

4. 스왑 사용량 확인

swapon --show로 확인가능합니다.

swapon --show

systemctl reboot 명령으로 재부팅 후에도 정상여부 확인합니다.

이상으로 스왑 공간 증가 방법에 대해 알아보았습니다.

반응형