1. swap이란?
시스템 메모리가 부족하면 하드 디스크의 일부 공간을 RAM의 일부처럼 동작하게 하여 도와주는 임시 공간입니다.
당연히 Disk를 사용하기 때문에 RAM보다 느릴 수 밖에 없습니다.
리눅스 시스템을 설치하다보면 swap을 잡아주게 되어 있는데 대부분 별 신경 쓰지 않고 기본값으로 설치하면 작은 크기로 설정되게 됩니다.
2. swap을 변경하는 이유
딥러닝을 하다가 자주 부딛히는 문제 중 하나는 GPU 메모리 뿐아니라 host의 메모리 크기가 부족하여 대용량의 데이터를 한번에 넣어서 모델을 학습하는데 문제가 발생한다는 것입니다.
딥러닝 같은 작업을 할때 HDD보다 상대적으로 빠른 SSD를 마운트 하고 SSD 내부에 대용량 swap 파일을 만들어 사용하면 엄청난(?) 체감 효과를 느끼실 수 있습니다.
3. 현재 swap 상태 확인하기
파일 크기를 확인해봅니다.
free -h
약 59G 정도의 swap을 사용하도록 설정되어 있습니다. (원래 기본 설치는 훨씬 더 작습니다)
파일 위치를 확인해봅니다.
cat /proc/swaps
4. swap 파일 생성하기
저는 SDD가 마운트된 디렉토리의 하위에 /home/docker/SSD/newswap 이름으로 약 128G swap파일을 생성해보겠습니다. (블럭단위로 계산하는 거라 정확히 입력 안하면 오차 있음...저는 대충 128G..)
당연히 128G를 생성하는데 시간이 좀 걸립니다.
dd if=/dev/zero of=/home/docker/SSD/newswap bs=1024 count=128000000
dd : 블록 단위 파일 입출력 명령어
if=FILE : 표준입력대신 지정한 파일을 입력
of=FILE : 표준 출력대신 지정된 파일에 출력
bs=BYTES : 한 번에 읽고 쓰는 바이트 크기를 지정
count=BLOCKS : 지정한 블록 수만큼 복사
/dev/zero는 읽기를 위해 가능한 많은 널 문자(ASCII NUL, 0x00)를 제공하는 유닉스 계열 운영 체제의 특수 파일이며 일반적인 용도 중 하나는 데이터 스토리지를 초기화하는데 사용됩니다.
자세한 설명은 다음을 참조하세요.
https://ko.wikipedia.org/wiki//dev/zero
5. 생성된 파일을 swap으로 사용하겠다고 지정 (mkswap)
블럭 단위로 정확히 계산 안하고 생성을 했더니 약 123G 정도의 파일이 생성되었습니다.
-rw-r--r--. 1 root root 123G 4월 18 06:11 newswap
이제 이 파일을 swap 영역으로 사용할 수 있도록 지정합니다.
mkswap /home/docker/SSD/newswap
6. swap 파일 활성화/비활성화 (swapon/swapoff)
이제 실제로 swap 영역으로 설정 될 수 있도록 swap 파일을 활성화 해준다.
swapon /home/docker/SSD/newswap
swapon 이후 실제 swap 메모리가 늘어났는지 free 를 통해 확인 해보면
59G에서 182G로 swap 이 확장된 것을 확인할 수 있습니다. 성공이네요.
설정 내용을 항상 사용하기 위해서는 /etc/fstab 에 한줄 추가해서 저장하고 사용하시면 됩니다.
/home/docker/SSD/newswap swap swap defaults 0 0
자 이제 더욱 확장된 메모리를 이용하여 답답한 딥러닝 학습을 좀더 쾌적하게 해보세요~~~ ^^
'IT > 리눅스' 카테고리의 다른 글
아나콘다에서 yml 파일을 이용한 가상 환경 만들기(anaconda, conda env, yml) (0) | 2023.04.18 |
---|---|
Rocky Linux 아나콘다(anaconda) 사용하기(설치, 초기화) (0) | 2023.04.18 |
인터페이스, 네트워크 트래픽 분석 도구 iftop (TX/RX 사용량, source IP, destination IP 등등) (0) | 2023.04.17 |
리눅스 리스닝 포트, 연결된 포트 확인하기(netstat, listen state port, connected state port) (0) | 2023.04.06 |
Rocky Linux 원격 호스트 포트 상태 확인하기(nmap, remote port check) (0) | 2023.04.05 |