暗无天日

=============>DarkSun的个人博客

在Linux下创建内存磁盘的不同方法及区别

内存磁盘具有读写速度快和断电即删的特性,非常适用于临时性的测试新鲜应用。 在Linux中提供了 tmpfsramfs 两种内存文件系统用于创建内存磁盘,用它们创建内存磁盘的方法几乎一样:

# 使用 tmpfs 创建内存磁盘
mount -t tmpfs -o size=1G tmpfs /mnt
# 使用 ramfs 创建内存磁盘
mount -t ramfs -o size=1G ramfs /mnt

但在效果上是有一些不同的。

tmpfs 的特点包括:

  1. 使用 tmpfs 创建的内存磁盘并不百分百保证是存储在RAM芯片上的,它实际上是存储在 Linux 内核的内存池中,也就是即包含内存也包含虚拟内存。 由于虚拟内存一般存储在磁盘上,因此速度会比实际的内存慢很多。
  2. 由于特点1,tmpfs 的最大可用存储空间为实际内存+虚拟内存的大小。默认为实际内存的一半。
  3. tmpfs 实际使用的空间是随着实际存储的数据而变化的,其 -size 参数只是告诉内核这个挂载点最多能用多少内存池中的内存而已,并不是实际占有量。
  4. tmpfs 默认挂载的权限为 777

ramfs 的特点包括:

  1. 使用 ramfs 创建的内存磁盘百分百存储在实际内存上,因此读写效率可以保证。
  2. ramfs 的最大可用存储空间不能超过实际内存大小
  3. ramfs 立即占用实际内存,可能会因此而影响主机性能
  4. ramfs 默认工作权限为 755
  5. 挂载 ramfs 不会在 df 命令中显示出来!但能在 mount 命令中显示出来
  6. ramfs 的 size 选项其实没什么作用,你可以往里面写大于 size 大小的文件,因此要小心不要写入太多东西导致内存耗尽。