尽管固态硬盘(SSD)的读写性能已经是机械式硬盘(HDD)的好几倍,但依然还是远远不及RAM(Random-access memory)的访问速度。将RAM仿真成硬盘,制成RAMDisk,除了可以有效增加RAM的使用率外,还可以加强RAMDisk内文件的访问速度,电脑关机或重开机也还会自动将RAMDisk清空,不留下任何痕迹。
Linux系统演进至今,已经发展出三种RAMDisk的机制。第一种就是传统固定大小,需要指定文件系统并进行格式化的「ramdisk」,第二种是可变大小,直接使用VFS(Virtual file system, 虚拟文件系统)来操作文件而无需格式化的ramfs
。第三种如同第二种的ramfs
,但它能使用的空间不只限于RAM内,还可以使用交换分区(SWAP),称作tmpfs
。
Linux如何將記憶體(RAM)作為硬碟使用?RAMDisk詳細介紹 | MagicLen
从内核的 Documentation 目录中找到如下相关信息:
Field name: ramdisk_size Size of the initial ramdisk or ramfs. Leave at zero if there is no |
这个 ramdisk_size 表示的是 ramdisk 或 ramfs 的大小,它是以 kbytes 为单位的。
ramdisk的配置存在于Linux的Kernel(内核),Linux缺省提供8个或16个ramdisk让用户挂载使用,每个ramdisk的路径可以使用以下指令来查看:
ls /dev/ram*
如果您没看到/dev/ram
相关设备,可能是因为您的Linux Kernel并没有加载brd
(block ram disk)模块。可以运行sudo modprobe brd
指令来加载。
每个ramdisk缺省的大小在不同的Linux系统上似乎都不太一样,但普遍不大,小于128MB,ramdisk的大小可以借由GRUB开机管理程序来设置Linux Kernel的参数来改变。可以使用文本编辑器打开/etc/default/grub
,在GRUB_CMDLINE_LINUX
中加入ramdisk_size
参数,并设置ramdisk的大小的数值,以KB为单位。如果还有其他参数,以空隔分隔。如以下设置方式,可以让每个ramdisk拥有512MB的空间:
GRUB_CMDLINE_LINUX="ramdisk_size=512000"
无论ramdisk是挂载还是卸载状态,一旦ramdisk经过格式化,就会占用掉文件系统所需的内存空间,如果有放置文件,会占用更多用来存放文件的内存空间。换句话说,ramdisk并不会在一开始格式化时就配置等量的内存空间,而是随着使用情况来慢慢增加。