Linux下创建RAM Disk

Linux下创建RAM Disk,第1张

RAM Disk是基于内存文件系统。通过创建RAM Disk利用空闲的内存来保存工作用的文件,可以得到性能的提升,有两种类型的RAM disk可选

ramfs在内存中创建了一个文件系统,使用和Linux文件系统的cache一样的机制及空间。 在linux下运行free命令可以看到当前内存的使用情况,

可以看到一共15G内存,其中3G是系统cache,这个空间会被linux用来缓存最近访问的文件,下次再访问的时候就不需要从磁盘读取了。ramfs使用相同的空间和机制,唯一不同的是,当内存的使用超出了系统设置的上限,ramfs文件不会被移出缓冲区。

ramfs文件系统不能和基于磁盘的文件系统一样来限制它的大小,ramfs会一直使用内存空间直到耗尽,这是它的一个缺陷;另一个问题是你没法儿通过 df 命令来获取ramfs的大小,只能通过 free 命令来估计。

tmpfs是一种更加先进的RAM文件系统,你可以设置大小限制,你也可以通过 df 命令来查看使用了多少空间

首先新建一个目录,用来挂载RAM Disk

ramfs是Linux下一种基于RAM做存储的文件系统。在使用过程中你就可以把ramfs理解为在普通的HDD上建立了一个文件系统,而现在HDD被替换成了RAM,因为是RAM做存储所以会有很高的存储效率。由于ramfs的实现就相当于把RAM作为最后一层的存储,所以在ramfs中不会使用swap。你什么时候听过会把HDD上的文件swap到哪里去吗?平常说的swap都是针对内存来说的,而ramfs底层的存储是RAM,虽然不是HDD,但是在Linux看来它就跟HDD一样。但是ramfs有一个很大的缺陷就是它会吃光系统所有的内存,即使你mount的时候指定了大小,同时它也只能被root用户访问。

Ramdisk/ramfs/tmpfs

Ramdisk:

大小固定,默认4096k。在编译内核的时候需将block device 中的Ramdisk支持选项加上。

如果对Ramdisk的支持已经编译进内核,可以如下方式使用:

查看可用的Ramdisk,使用 ls /dev/ram*

创建一个目录 mkdir /mnt/test

对/dev/ram0创建文件系统 mke2fs /dev/ram0

最后将创建的文件系统挂载到该目录下

mount /dev/ram /mnt/test

ramfs:

大小可以根据需要进行增加和减少。

处于虚拟文件系统层VFS,不像ramdisk基于虚拟在内存中的其他文件系统(ex2fs)。

如果对Ramdisk的支持已经编译进内核,可以如下方式使用:

创建目录,加载ramfs到该目录

mkdir /testRam

mount -t ramfs none /testRam

缺省的情况下,被限制为最多使用内存大小的一半

也可通过maxsize进行制定

eg:创建一个限定最大使用内存2M的ramfs

mount -t ramfs none /test Ram -o maxsize=2000

tmpfs:

不同于传统的用块设备block device来进行实现的Ramdisk,

也不同于针对物理内存的ramfs

tmpfs既可以使用物理内存,也可以使用交换分区。

大小不固定,可以根据需要进行增加或减少

使用tmpfs需要编译内核时选择

虚拟内存文件系统支持(Virtual memory filesystem support)”

加载tmpfs:

mkdir -p /mnt/tmpfs

mount tmpfs /mnt/tmpfs -t tmpfs

指定大小

mount tmpfs /mnt/tmpfs -t tmpfs -o size=32M


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12012782.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存