tmpfs
및 이외에도 ramfs
다른 옵션은 /dev/ram0
블록 장치입니다. 최근 Ubuntu 버전에서는이 장치가 기본적으로 존재하지 않지만을 통해 만들 수 있습니다 modprobe brd
.
이 접근 방식은 실제 ext4
파일 시스템을 생성하고 사용자가 지정한 제한을 초과하지 않기 때문에 더 예측 가능 합니다. 그러나 설정하는 데 더 많은 단계가 필요하며 RAM을 덜 효율적으로 사용합니다.
brd 커널 모듈 (/ dev / ram0) 사용
4GB RAM 디스크를 만들고 초기화하려면 :
mkdir /ramdisk
modprobe brd rd_nr=1 rd_size=$((4 * 1048576))
mkfs.ext4 /dev/ram0
mount /dev/ram0 /ramdisk
이 rd_nr
매개 변수는 작성할 RAM 디스크 수를 지정합니다 (기본적으로 16 개를 작성 /dev/ram0
합니다 /dev/ram15
). rd_size
매개 변수의 크기 킬로바이트 . $(( ... ))
구문은 쉘에서 산술 연산을 수행 할 수 있습니다.
RAM 디스크를 할당 해제하려면 디스크를 마운트 해제하고 brd
커널 모듈을 제거하십시오 .
umount /ramdisk
modprobe -r brd
내부에 블록 장치 만들기 ramfs
또는 내부에 블록 장치를 만들 수 있습니다 ramfs
.
mkdir /ramdisk-storage /ramdisk
mount -t ramfs ramfs /ramdisk-storage
truncate -s 4G /ramdisk-storage/ramdisk.img
mkfs.ext4 /ramdisk-storage/ramdisk.img
mount /ramdisk-storage/ramdisk.img /ramdisk
truncate
명령은 온 디맨드가 초기화되도록 주어진 크기의 빈 파일 (즉, 소비하는 메모리)을 생성한다.
RAM 디스크를 할당 해제하려면 디스크를 마운트 해제하고 디스크 이미지를 삭제하십시오.
umount /ramdisk
rm /ramdisk-storage/ramdisk.img
과의 비교 tmpfs
및ramfs
비록 tmpfs
및 ramfs
블럭 장치를 사용하는 것보다 더 효율적이며, 그 아래의 단점 중 일부이다.
tmpfs
디스크로 교체 될 수 있습니다. 이 방법이 더 효율적이지만 순수한 RAM 디스크를 원하는 경우가 있습니다.
- 작업중인 파일은 중요합니다 (예 : 암호화 된 파티션의 파일).
- 성능 테스트를 수행하고 있으며 디스크 I / O가 요인이되기를 원하지 않습니다 (SSD 쓰기 시간은 크게 다를 수 있음).
- 큰 파일의 압축을 풀고 SSD를 닳고 싶지 않습니다.
ramfs
파일을 삭제하면 공간을 확보하고 RAM을보다 효율적으로 사용할 수 있습니다 (시스템은 파일이 RAM에 있다는 것을 알고 있기 때문에 파일을 버퍼링하지 않습니다). 그러나 자체 단점과 놀라움이 있습니다.
이 df
유틸리티는 공간 사용량을보고하지 않습니다.
root@cello-linux:~# df -h /ramdisk
Filesystem Size Used Avail Use% Mounted on
ramfs 0 0 0 - /ramdisk
크기 제한 매개 변수가 없습니다. 램 디스크를 너무 많이 넣으면 시스템이 중단됩니다.
스파 스 파일은 최소한 기대할 때 스파 스되지 않을 수 있습니다. 오늘 아침에 VM 이미지 (150G, 49G 디스크에 사용됨)를 ramfs
(128G의 RAM이 있음)에 복사했습니다 . 효과가있었습니다. 내가 복사 할 때 부터ramfs
대상으로, 내 시스템이 응답하지되었다. cp
유틸리티는 분명히에 구멍을 채워 읽기 가 아니라 쓰기에.
모두 tmpfs
와 ramfs
실제와 다르게 작동 할 수 있습니다 ext4
파일 시스템. RAM으로 블록 장치를 생성하고 초기화 ext4
하면 이것을 피할 수 있습니다.
보다 심도있는 비교를 위해 : https://www.kernel.org/doc/Documentation/filesystems/ramfs-rootfs-initramfs.txt
mount -o size=16G -t tmpfs none /mnt/tmpfs