리눅스 RamDisk 램디스크 만들기 (우분투)
-
램디스크는 속도와 접근성 면에서 우월합니다.
그 용도와 특성은 다르지만 램디스크와 SSD를 비교했을 때, 두 장치 간의 수명과 관련된 몇 가지 중요한 차이가 있습니다.1. Ramdisk와 SSD의 차이
- 저장 방식:
- 램디스크는 RAM (Random Access Memory)을 사용하여 데이터를 저장합니다. RAM은 전원이 꺼지면 데이터가 사라지는 휘발성 메모리입니다.
- SSD는 플래시 메모리를 사용하여 데이터를 저장합니다. 플래시 메모리는 전원이 꺼져도 데이터를 유지하는 비휘발성 메모리입니다.
- 속도:
- 램디스크는 RAM에 직접 접근하기 때문에 매우 빠른 읽기 및 쓰기 속도를 제공합니다.
- SSD는 회전하는 기계적인 부분이 없어 매우 빠른 속도를 제공하지만, 램디스크보다는 느립니다.
- 수명:
- 램디스크는 전원이 꺼지면 데이터가 소멸하기 때문에 수명에 대한 개념이 없습니다. 그러나 램디스크를 지속적으로 사용하면 RAM의 사용량이 증가하고, 이는 주기적인 전원 공급이나 램디스크를 다시 작성해야 함을 의미합니다.
- SSD는 플래시 메모리의 특성상 한계 수명이 존재합니다. 즉, 플래시 메모리 셀에는 한정된 쓰기/지우기 주기가 있으며, 이로 인해 장기적으로 사용할 경우 소모될 수 있습니다. 그러나 현대의 SSD는 이를 완화하기 위한 기술을 적용하여 수명을 연장시키는 노력을 기울이고 있습니다.
- 내구성:
- 램디스크는 전원이 꺼지면 데이터가 소멸하기 때문에 내구성에 대한 고려가 없습니다.
- SSD는 데이터를 비휘발성으로 저장하므로 내구성이 필요합니다. SSD 제조업체들은 내구성을 높이기 위해 다양한 기술을 적용하고 있습니다.
즉 우리는 수명에 대한 고려가 필요 없고, 빠른 속도가 필요할 때 사용하면 적절합니다.
저는 캐시를 프리로드 (Preload Cache)에 사용합니다.2. Ramdisk 생성
Ramdisk를 만들어 보겠습니다.
- 먼저 다음과 같이 파일 시스템 어디에나 있을 수 있는 디렉터리를 만듭니다.
(꼭 이름이/tmp/ramdisk
일 필요는 없습니다. 취향의 문제입니다.)
sudo mkdir -p /tmp/ramdisk
- Linux 시스템의 모든 사용자가 RAM 디스크를 사용하도록 하려면 해당 권한을 777로 변경합니다.
(777
권한에 대해서 충분히 이해하실 것이라고 믿습니다. 저는 777 권한으로 사용하겠습니다. )
sudo chmod 777 /tmp/ramdisk
- 아래의 명령을 통해서 여유가 있는 메모리를 확인합니다.
free -hm
-
이제 우리는 파일 시스템 유형, RAM 디스크 크기, 장치 이름을 지정하고 위의 디렉터리에 마운트하기만 하면 됩니다.
-
위의 스크린샷에서 볼 수 있듯이 여유 RAM이 충분하므로 RAM 디스크에 1GB를 쉽게 할당할 수 있습니다. 이 작업은 다음 한 줄로 수행할 수 있습니다.
-
tmpfs 파일 시스템을 사용하며 크기는 4096MB로 설정합니다.
myramdisk
는 제가 지정한 장치 이름입니다. (myramdisk
는 마찬가지로 취향의 문제입니다.)
sudo mount -t tmpfs -o size=4G myramdisk /tmp/ramdisk
- 곧바로 다음 명령을 실행합니다.
sudo mount | tail -n 1
3. RamDisk 테스트
RAM 디스크의 쓰기 속도를 테스트하려면 dd 유틸리티를 사용할 수 있습니다.
sudo dd if=/dev/zero of=/tmp/ramdisk/zero bs=4k count=100000
4. 시스템 부팅 시 자동 마운트
기본적으로
/etc/fstab
를 수정해 주면 됩니다.
취향에 따라vim
혹은nano
를 사용해서 아래의 줄을 추가해 줍니다.sudo vim /etc/fstab
myramdisk /tmp/ramdisk tmpfs defaults,size=4G,x-gvfs-show 0 0
x-gvfs-show
옵션을 주면 파일 관리자에서 RAM 디스크를 볼 수 있습니다.파일을 저장하고 닫습니다. (vim 이라면
ESC
키 -:wq!
)
컴퓨터가 부팅될 때 Linux 시스템이 자동으로 RAM 디스크를 마운트합니다.재부팅하지 않고 즉시 마운트하려면 다음 명령을 실행합니다.
sudo mount -a
저는 아래와 같이 캐시를 한번에 Preload 할 때 사용합니다.
-