在Linux下创建内存磁盘的不同方法及区别
内存磁盘具有读写速度快和断电即删的特性,非常适用于临时性的测试新鲜应用。
在Linux中提供了 tmpfs
和 ramfs
两种内存文件系统用于创建内存磁盘,用它们创建内存磁盘的方法几乎一样:
# 使用 tmpfs 创建内存磁盘 mount -t tmpfs -o size=1G tmpfs /mnt # 使用 ramfs 创建内存磁盘 mount -t ramfs -o size=1G ramfs /mnt
但在效果上是有一些不同的。
tmpfs 的特点包括:
- 使用 tmpfs 创建的内存磁盘并不百分百保证是存储在RAM芯片上的,它实际上是存储在 Linux 内核的内存池中,也就是即包含内存也包含虚拟内存。 由于虚拟内存一般存储在磁盘上,因此速度会比实际的内存慢很多。
- 由于特点1,tmpfs 的最大可用存储空间为实际内存+虚拟内存的大小。默认为实际内存的一半。
- tmpfs 实际使用的空间是随着实际存储的数据而变化的,其
-size
参数只是告诉内核这个挂载点最多能用多少内存池中的内存而已,并不是实际占有量。 - tmpfs 默认挂载的权限为 777
ramfs 的特点包括:
- 使用 ramfs 创建的内存磁盘百分百存储在实际内存上,因此读写效率可以保证。
- ramfs 的最大可用存储空间不能超过实际内存大小
- ramfs 立即占用实际内存,可能会因此而影响主机性能
- ramfs 默认工作权限为 755
- 挂载 ramfs 不会在
df
命令中显示出来!但能在mount
命令中显示出来 - ramfs 的
size
选项其实没什么作用,你可以往里面写大于size
大小的文件,因此要小心不要写入太多东西导致内存耗尽。