Swap 메모리는 하드디스크의 일부를 RAM처럼 사용하도록 만들어진 메모리입니다. 지금 사용중인 컴퓨터의 메모리를 초과하는 프로그램을 돌리거나 딥러닝 네트워크를 학습시킬 경우에, 일부 용량을 Swap 메모리로 설정해놓음으로써 메모리가 run out 되는 것을 막을 수 있습니다. RAM 4GB에 Swap 메모리 2GB를 설정한다면, 총 6GB의 메모리를 사용할 수 있는 것입니다.
그러나 RAM 장치가 아닌, HDD 장치를 사용하는 것이기 때문에 읽고 쓰는 속도가 급격히 느려집니다. Best option은 그냥 가용할 수있는 RAM 용량을 넘지 않게 프로세스를 조정하는 것이 좋습니다. Ubuntu에서는 이 Swap 메모리를 쉽게 설정할 수 있습니다. 적어도 학습 도중에 터지지는 않게 설정할 수 있는 것이지요.
1. swap 파일 확인
스왑 파일이나 파티션이 존재하는지 확인합니다.
sudo free -m
sudo swapon -s
두 명령어를 실행했을 때 swap 관련 내용이 보이지 않으면 다음 과정을 진행합니다.
만약 swap이 작동중이라면, 아래 명령을 실행해 작동을 중지합니다.
sudo swapoff -a
2. swapfile 생성
swap을 하기위한 swapfile을 생성합니다.
sudo fallocate -l 2G /swapfile
-l 뒤에는 swapfile의 용량을 입력하면 됩니다. 2G를 입력하면 메모리 외에 추가로 2G의 가상 메모리를 사용할 수 있습니다. 이후 root 디렉터리에 swapfile이 생성됩니다.
swapfile의 권한을 수정한 뒤, 해당 파일이 swap으로 동작하도록 만듭니다.
sudo chmod 600 /swapfile # 권한 수정
sudo mkswap /swapfile # 활성화 준비
sudo swapon /swapfile # 활성화
swap 메모리가 생성되었지만, 이를 재부팅해도 계속 사용하려면 /etc/fstab 파일을 수정해야 합니다. 해당 파일을 열어 아래 내용을 추가합니다.
sudo nano /etc/fstab # 파일 편집
## 내용 추가
/swapfile swap swap defaults 0 0
3. swap 파일 삭제
sudo swapoff -v /swapfile # 스왑 비활성화
sudo nano /etc/fstab # 파일 실행 후 아래 라인 삭제
/swapfile swap swap defaults 0 0
sudo rm /swapfile # swap 파일 삭제
'CS & Programming' 카테고리의 다른 글
Ubuntu rm: descend into write-protected directory 'X', 파일 권한 코드를 알아보자 (0) | 2022.12.07 |
---|---|
vscode에서 black으로 code format 자동화하기 (python) (0) | 2022.04.03 |
docker container에서 디스플레이를 못찾는다? (0) | 2022.03.30 |
vscode n번째 글자에 세로선 추가하기 (easy) (0) | 2022.03.25 |
python joblib으로 병렬 프로그래밍을 해보자 (2) | 2021.12.05 |