리눅스에서의 디스크 스왑이란, 물리적인 메모리, 즉 RAM의 용량이 부족한 경우, 보조기억장치(SSD, HDD 등)를 메모리 대용으로 사용하는 메모리 관리 기술을 말한다. Windows에서는 가상 메모리 및 페이징 파일 기술이 이와 비슷한 역할을 한다.
물론 Linux의 디스크 스왑과 Windows의 가상 메모리 및 페이징 파일은 완벽히 동일한 역할을 하지는 않는다.
이들의 존재로 인하여 운영체제는 실제로 장착된 메모리의 용량이 부족해도, 디스크 스왑의 힘을 빌려 프로그램을 실행할 수 있다. 모든 메모리 용량 문제를 해결해 주는 것은 아니지만, 디스크 스왑을 이용하는 것과 그렇지 않은 경우를 비교하면 당연히 디스크 스왑 기능을 적극적으로 사용하는 편이 좋다. 프로그램의 퍼포먼스가 떨어지지만, 어쨌든 프로그램을 실행할 수는 있기 때문이다. 디스크 스왑을 사용하지 않는 경우, 가용 RAM이 부족하면 그대로 프로그램이 충돌한다.
가용 메모리가 부족하자 시스템에서 디스크 스왑을 사용하는 것을 알 수 있다.
이렇게 편리한 디스크 스왑 기능이지만, 어떠한 이유로 인하여 디스크 스왑 기능이 비활성화되어 있을 때가 있다.
특히 Windows보다도 더욱 많은 권한을 주는 Linux의 경우, 사용자의 실수 한 번에 스왑 기능이 비활성화될 수 있다.
이러한 경우, 사용자가 직접 디스크 스왑 기능을 활성화해야 한다.
리눅스에서 디스크 스왑은 두 가지 방법으로 구현된다.
첫번째는 디스크에 스왑 파티션을 구성하고, 스왑 파티션을 이용하여 디스크 스왑을 구현하는 방법이다.
두 번째는 스왑 파일을 생성하고, 스왑 파일을 이용하여 디스크 스왑을 구현하는 방법이다.
각각 장단점이 있다.
스왑 파티션을 구성하는 방법의 경우, 사용자가 사용하는 파티션과 스왑 파티션이 논리적으로 분리되므로, 사용자나 프로그램에 의해 스왑 기능에 문제가 생길 확률이 적다. 그러나, 따로 파티션을 구성해야 하므로, 구성 난이도가 올라가고, 이를 구성하는 과정에서 기존 파티션에 문제가 생겨 데이터 손실이 발생할 수도 있다.
스왑 파일을 생성하는 방법의 경우, 단순이 스왑 파일을 만들고 그것을 시스템에 등록하면 되기 때문에 난이도가 쉽고, 파티션을 건드리지 않기 때문에, 이에 따른 문제점도 적다. 그러나, 스왑 파일이 사용자 데이터 파티션에 존재하기 때문에, 이에 따른 문제가 생길 수 있다.
이 글에서는 Linux Mint에서, 보다 난이도가 쉬운 스왑 파일을 이용하여 디스크 스왑을 사용할 것이다.
시스템에서 디스크 스왑 기능이 사용되는지 여부 확인하기
일단 디스크 스왑 기능이 사용되는지 확인할 필요가 있다.
가장 먼저 터미널을 연다.
디스크 스왑 기능이 사용되는지 여부를 확인해야 한다. 아래의 명령줄을 입력하거나, 시스템 감시를 연다.
free -m
그러면 다음과 같은 정보가 뜰 것이다.
free 명령어는 리눅스 시스템에서 현재 메모리 사용량을 보여주는 명령어이다. 사용 가능한 메모리와 사용 중인 메모리, 버퍼, 캐시 등의 정보를 알 수 있다. 기본값은 킬로바이트 단위이다.
"free -m"은 free 명령어에 -m 옵션을 붙인 것으로, 결과를 메가바이트 단위로 표시하도록 한다. 오늘날의 컴퓨터의 메모리 용량은 대부분 기가바이트 단위이기 때문에, 메가바이트 단위로 결과를 표시하게 하면 보다 편리하게 정보를 읽을 수 있다.
Swap 부분이 0으로 표기되므로, 운영체제가 디스크 스왑 기능을 사용하고 있지 않다는 것을 의미한다.
다음 명령줄 또한 입력한다.
swapon -s
이 명령줄은 스왑 파일이 지정되어 있는지를 확인하는 명령줄로, 아무런 메시지가 출력되지 않는다면 스왑 파일이 존재하지 않는다는 의미(=디스크 스왑 기능이 사용되지 않는다는 의미)이다.
시스템 감시를 열어서 확인하는 경우 다음과 같은 화면이 나타날 것이다.
스왑 항목이 사용 불가능 상태이므로, 운영체제가 디스크 스왑 기능을 사용하고 있지 않다는 것을 의미한다.
스왑 파일 생성 및 사용
운영체제에서 디스크 스왑 기능이 사용되지 않는다는 것을 알았으니, 이제 스왑 파일을 생성해야 한다.
아래의 예문을 참고하여 명령줄을 입력한다.
sudo fallocate -l <스왑 파일의 크기> /swapfile
예를 들어, 2GB의 스왑 파일을 생성하고 싶다면 아래와 같이 입력한다.
sudo fallocate -l 2GB /swapfile
필요한 스왑 파일의 크기는 사용자마다 다르다.
보통의 경우, 장착되어 있는 RAM 용량의 절반~2배 사이의 크기로 설정하나, 필요한 경우 더 크게 형성하여도 된다.
그러나 장착된 RAM 용량의 절반 미만으로 생성하는 것은 꼭 필요한 상황이 아니라면 피하는 것이 좋다. 디스크 스왑 기능이 필요하다는 것은 곧 가용 메모리의 용량이 부족하다는 의미인데, RAM 크기의 절반 미만으로 스왑 파일을 생성하는 것은 별 도움이 되지 않을 가능성이 높다.
명령을 실행하였으면 스왑 파일이 생성되었는지 확인한다.
파일을 생성하였지만 지금 단계에서는 그저 2GB의 파일을 만들었을 뿐이며, 이 파일을 스왑 파일로 만들려면 몇 가지 작업이 필요하다.
먼저 생성된 파일에 권한을 할당한다.
아래의 명령줄을 입력한다.
sudo chmod 600 /swapfile
"chmod"는 파일의 권한을 변경하는 명령어로, 뒤에 붙은 600은 해당 파일의 권한 속성을 나타낸다.
600의 의미는 파일 소유자에게 읽기(4)와 쓰기(2)를 허용(4+2 = 6)하고, 그 외 그룹 및 기타 사용자에게는 어떠한 권한도 허용하지 않는다(0)는 의미이다.
생성한 스왑 파일을 시스템에서 사용할 수 있도록 스왑 포맷 형태로 변환한다.
아래의 명령줄을 입력한다.
sudo mkswap /swapfile
스왑 파일을 시스템에 등록한다.
아래의 명령줄을 입력한다.
sudo swapon /swapfile
운영체제에서 디스크 스왑 기능이 정상적으로 작동하고 있는지 확인한다.
아래의 명령줄을 입력하거나, 시스템 감시를 열어 디스크 스왑 기능이 정상적으로 작동하고 있는지 확인한다.
free -m
경우에 따라, 재부팅 후에 운영체제에서 사용자가 설정한 디스크 스왑 기능을 사용하지 않는 경우가 있는데, 이럴 때에는 /etc/fstab 파일을 에디터로 연 후 항목을 추가하여야 한다.
FSTAB 파일은 리눅스 시스템에서 파일 시스템 마운트 정보를 설정하는 파일로, 이 파일에 스왑 설정이 기록되어있지 않으면 부팅 시 자동으로 스왑 기능을 사용하지 않는다.
해당 파일은 텍스트 파일이므로, 텍스트 편집기를 이용하면 파일의 내용을 수정할 수 있다.
가장 편한 방법은 nano 편집기를 이용하는 것이다. 리눅스의 기본 편집기이며, 터미널에서 바로 사용할 수 있어 편리하다.
아래의 명령줄을 입력한다.
sudo nano /etc/fstab
그러면 다음과 같은 텍스트 편집기 항목이 뜰 것이다.
아래의 항목이 존재하면 문제가 없지만, 없다면 아래의 항목을 추가한다.
/swapfile none swap sw 0 0
중간의 공백은 [Space] 키가 아니라 [Tab] 키이다.
해당 항목을 입력한 후, [Ctrl + O]를 눌러 저장한 후, [Ctrl + X]를 눌러 편집기를 닫는다.
스왑 파일 등록 해제 및 삭제
디스크 스왑 기능을 해제하거나, 스왑 파일의 구성을 변경, 삭제하고 싶을 때에는 먼저 스왑 파일을 시스템에서 등록 해제해야 한다.
아래의 명령줄을 입력한다.
sudo swapoff /swapfile
해당 명령줄을 입력하면 시스템에서 위 이미지에서처럼 스왑 파일에 저장된 내용물을 메모리로 옮기는데, 시간이 조금 걸리므로 기다리자.
스왑 파일을 삭제하려면 아래의 명령줄을 입력한다.
sudo rm /swapfile
마지막으로 /etc/fstab 파일에서 위에서 추가한 항목을 제거한다.
참고 자료
'컴퓨터 > Linux' 카테고리의 다른 글
Linux Mint에서 스왑 파티션을 이용하여 디스크 스왑 사용하기 (1) | 2023.12.16 |
---|---|
Linux Mint 업데이트 오류 (0) | 2023.12.01 |
GRUB 테마 수정 (0) | 2023.09.24 |
Linux Mint에서 Timeshift를 이용하여 디스크 백업 및 복사하는 방법 (0) | 2023.08.06 |
Wine을 이용하여 Linux에서 Windows 소프트웨어 실행 (0) | 2023.06.07 |
댓글