본문 바로가기
Clouds/Oracle

Oracle Cloud #5 - 스왑 파일 만들기

by Spring13 2024. 1. 15.

이전 글에서, 인스턴스를 처음 만들면 운영체제에서 디스크 스왑을 사용하도록 설정되어 있지 않다고 한 바 있다.

이미지에서 표시한 부분은 현재 운영체제의 메모리 사용량이다.

이용자에 따라, 굳이 디스크 스왑을 사용하지 않아도 된다. 서버 운영체제이기에 GUI와 같은 메모리를 많이 차지하는 요소가 없기 때문이다.

 

그러나, 디스크 스왑을 사용하지 않는 것보다는 사용하는 것이 낫다. Linux에 스왑 파일을 설정하는 글에서 스왑 파일의 동작 방식에 대해 간단하게 설명한 바 있다.

 

Linux Mint에서 스왑 파일을 이용하여 디스크 스왑 사용하기

리눅스에서의 디스크 스왑이란, 물리적인 메모리, 즉 RAM의 용량이 부족한 경우, 보조기억장치(SSD, HDD 등)을 메모리 대용으로 사용하는 메모리 관리 기술을 말한다. Windows에서는 가상 메모리 및

sprout13.tistory.com

다시 한번 간단히 설명하자면, 응용 프로그램을 실행하다가, 가용 메모리가 부족할 때, 스왑 파일을 이용하여 메모리 부족 현상으로 응용 프로그램이 충돌하지 않게끔 해 주는 것이 디스크 스왑이다. AMD 기반 무료 인스턴스 기준으로, 가용 메모리는 1GB이므로, 메모리가 부족하여 몇몇 작업들이 실행되지 않을 수 있다.


스왑 설정 확인


작업 전, 정말로 운영체제에 스왑 설정이 되어 있지 않은지 확인할 필요가 있다.

 

"free -m"을 입력한다.

free -m

free 명령어는 리눅스 시스템에서 현재 메모리 사용량을 보여주는 명령어이다. 사용 가능한 메모리와 사용 중인 메모리, 버퍼, 캐시 등의 정보를 알 수 있다. 기본값은 킬로바이트 단위이다.

 

"free -m" 명령줄은 free 명령어-m 옵션을 붙인 것으로, 결과를 메가바이트 단위로 표시하도록 한다. 오늘날의 컴퓨터의 메모리 용량은 대부분 기가바이트 단위이기 때문에, 메가바이트 단위로 결과를 표시하게 하면 보다 편리하게 정보를 읽을 수 있다.

 

위 이미지를 보면 "Swap" 항목의 정보가 전부 0으로 되어있는 것을 확인할 수 있다.

이는 해당 항목이 없다는 의미로, 즉 디스크 스왑이 설정되어 있지 않다는 의미와 같다.

 

다음 명령줄 또한 입력한다.

swapon -s

명령을 실행하였으나, 아무 메시지도 나타나지 않았다.

"swapon -s" 명령줄은 리눅스에서 현재 활성화된 스왑 공간에 대한 정보를 보여주는 명령어로, 이 명령줄을 실행하면 현재 활성화된 스왑 파티션 및 스왑 파일에 대한 정보를 보여준다.

 

위 이미지와 같이, 명령줄을 실행하였음에도 아무런 메시지가 나타나지 않는다면 스왑 설정이 되어있지 않다는 의미이다.

이제 스왑 설정을 해야 한다.


스왑 파일 생성 및 등록


운영체제에서 스왑을 사용하지 않으니, 디스크 스왑을 직접 활성화하여야 한다.

디스크 스왑을 이용하는 방법에는 스왑 파티션을 생성하여 이용하는 방법스왑 파일을 생성하여 이용하는 방법 두 가지가 있다.

 

Linux Mint에서 스왑 파티션을 이용하여 디스크 스왑 사용하기

이전 글에서는 스왑 파일을 이용하여 디스크 스왑 기능을 사용하는 방법을 알아본 바 있다. Linux Mint에서 스왑 파일을 이용하여 디스크 스왑 사용하기 리눅스에서의 디스크 스왑이란, 물리적인

sprout13.tistory.com

 

Linux Mint에서 스왑 파일을 이용하여 디스크 스왑 사용하기

리눅스에서의 디스크 스왑이란, 물리적인 메모리, 즉 RAM의 용량이 부족한 경우, 보조기억장치(SSD, HDD 등)을 메모리 대용으로 사용하는 메모리 관리 기술을 말한다. Windows에서는 가상 메모리 및

sprout13.tistory.com

이 두 가지 방법 중 더 쉬운 방법은 스왑 파일을 이용하는 것이다.

스왑 파티션을 이용하지 위해서는 FDISK 등의 디스크 파티션 설정 도구를 CLI 환경에서 다루어야 하기 때문이다.

체감이 되지 않는다면 Windows에서 "디스크 관리"DISKPART를 이용하는 것 중 어느 것이 더 쉬울지 생각해 보면 된다.


어찌 되었든, 스왑 파일을 통해 디스크 스왑을 사용하지 위해서는 먼저 스왑 파일을 생성하여야 한다.

 

아래의 예문을 참고하여 명령줄을 입력한다.

sudo fallocate -l <스왑 파일의 크기> /swapfile

이 명령문은 <스왑 파일의 크기>만큼 최상위 경로인 "/"에 "swapfile"이라는 이름의 파일을 생성한다.

 

예를 들어, 4GB의 스왑 파일을 생성하고 싶다면 아래와 같이 입력한다.

sudo fallocate -l 4GB /swapfile

필요한 스왑 파일의 크기는 사용자마다 다르다.

보통 가용 메모리의 절반~2배 사이의 크기로 설정하지만, 위 경우는 가용 메모리가 1GB라는 점에서 그의 4배인 4GB의 스왑 파일을 생성하였다.

2GB ~ 4GB 정도면 적당할 것이다. 너무 크게 설정하는 것도 좋지 않은데, 가장 처음의 이미지에서 알 수 있듯 기본 볼륨이 44.96GB 밖에 되지 않기 때문이다. 스왑 파일이 너무 작거나 크면 다시 스왑 파일을 설정해 주어야 하는 귀찮음이 있으니, 적당히 설정하도록 하자.

 

스왑 파일이 정상적으로 할당되었는지 확인하려면 "ls /" 또는 "ll /"을 입력한다.

ls /
ll /

swapfile이 정상적으로 생성된 것을 확인할 수 있다.


파일을 생성하였다고 해도, 그것은 그저 4GB의 파일일 뿐이다.

이 파일을 스왑 파일로 만들려면 몇 가지 작업이 필요하다.

 

먼저 생성된 파일에 권한을 할당한다.

아래의 명령줄을 입력한다.

sudo chmod 600 /swapfile

"chmod"는 파일의 권한을 변경하는 명령어로, 뒤에 붙은 600은 해당 파일의 권한 속성을 나타낸다.

600의 의미는 파일 소유자에게 읽기(4)와 쓰기(2)를 허용(4+2 = 6)하고, 그 외 그룹 및 기타 사용자에게는 어떠한 권한도 허용하지 않는다(0)는 의미이다.

 

이를 통해 파일 소유자(root) 외에는 파일을 건드릴 수 없다.


권한 설정을 하였으면 파일을 스왑 파일로 사용할 수 있도록 스왑 포맷 형태로 변환한다.

아래의 명령줄을 입력한다.

sudo mkswap /swapfile

이제 swapfile은 스왑 파일이 되었다.

 

마지막으로 스왑 파일을 활성화하지 위해 아래의 명령줄을 입력한다.

sudo swapon /swapfile


스왑 파일 등록이 끝나면 "free -m"  "swapon -s" 명령을 입력하여 시스템에서 스왑 파일을 이용하여 디스크 스왑을 사용하고 있는지 확인한다.


여담


경우에 따라, 재부팅 후 운영체제에서 설정한 디스크 스왑 기능을 사용하지 않을 때가 있다.

그 이유는 /etc/fstab 파일에 스왑 설정이 등록되지 않아서이다. 해당 파일은 리눅스 시스템에서 파일 시스템 마운트 정보를 설정하는 파일로, 이 파일에 스왑 설정이 기록되어있지 않으면 부팅 시 자동으로 스왑 기능을 사용하지 않는다.

해당 파일은 텍스트 파일이므로, nano 편집기를 이용하면 파일의 내용을 수정할 수 있다.

 

아래의 명령줄을 입력한다.

sudo nano /etc/fstab

 

그러면 아래와 같은 화면이 뜬다.

 

아래의 항목을 추가한다.

/swapfile	none	swap	sw	0	0

중간의 공백은 [Space] 키가 아니라 [Tab] 키이다.
해당 항목을 입력한 후, [Ctrl + O]를 눌러 저장한 후, [Ctrl + X]를 눌러 편집기를 닫는다.

 

이후 다시 재부팅하여 부팅 시 자동으로 스왑 파일을 사용하는지 확인한다.

 

이제 스왑 파일을 이용한 디스크 스왑을 사용할 수 있다.


스왑 파일 등록 해제 및 삭제


디스크 스왑 기능을 해제하거나, 스왑 파일의 구성을 변경 혹은 삭제하기 위해서는 먼저 시스템에서 스왑 파일을 이용한 디스크 스왑을 사용 해제해야 한다.

 

아래의 명령줄을 입력한다.

sudo swapoff /swapfile

해당 명령줄을 입력하면 시스템에서 스왑 파일에 저장된 정보를 메모리로 옮기는데, 시간이 조금 걸리므로 기다린다.

 

스왑 파일을 삭제하려면 먼저 FSTAB의 파일에서 추가한 내용을 삭제한 후 저장한 뒤, 편집기를 닫고 터미널에서 아래의 명령줄을 입력하여 파일을 삭제한다.

sudo rm /swapfile

같이 보면 좋은 글


Linux Mint에서 스왑 파일을 이용하여 디스크 스왑 사용하기

 

Linux Mint에서 스왑 파일을 이용하여 디스크 스왑 사용하기

리눅스에서의 디스크 스왑이란, 물리적인 메모리, 즉 RAM의 용량이 부족한 경우, 보조기억장치(SSD, HDD 등)을 메모리 대용으로 사용하는 메모리 관리 기술을 말한다. Windows에서는 가상 메모리 및

sprout13.tistory.com


Oracle Cloud 시리즈

 


더보기
728x90
반응형

댓글