RAMFS是什么,第1张

RAMFS是Linux下基于RAM的文件系统。在使用中,你可以把ramfs理解为建立在普通HDD上的文件系统,但是现在HDD已经被RAM取代了,因为RAM是用来存储的,所以会有很高的存储效率。

RAMFS是Linux下基于RAM的文件系统。在使用中,你可以把ramfs理解为建立在普通HDD上的文件系统,但是现在HDD已经被RAM取代了,因为RAM是用来存储的,所以会有很高的存储效率。

RAMFS是什么,RAMFS是什么,第2张

因为ramfs的实现相当于使用RAM作为最后一层存储,所以ramfs中不会使用交换。你什么时候听说过硬盘上的文件会被交换?交换通常针对内存,而内存是内存底部的存储。虽然不是HDD,但就像Linux里的HDD一样。然而,ramfs有一个很大的缺陷,它会耗尽系统的所有内存。即使您在装载时指定了大小,它也只能由根用户访问。测试方法很简单:

sudo mount-t ram fs-o size = 10M ram fs。/ramfs/

sudo dd if=/dev/zero of=。/ramfs/test.file bs=1M计数=20

在测试过程中,你会发现上面的操作可以成功,或者你简单的在自己的虚拟机上做一些硬的事情,直接写一个大于内存的文件,你会发现系统瞬间就卡住了。此外,如果根用户不执行dd命令,权限将不足:

dd:开始`。/ramfs/test . file & # 8217;:权限被拒绝

Tmpfs也是Linux下的文件系统,将所有文件保存在虚拟内存中,umount tmpfs后所有数据都会丢失,这是ramfs的衍生。Tmpfs使用的是虚拟内存的机制,而且是交换的,但是它比ramfs有一个优势:挂载时指定的大小参数是有效的,可以保证系统的安全性,而不是像ramfs那样因为写数据消耗系统全部内存而粗心大意。在我的文章开头的例子中,装载了一个10米大小的tmpfs,然后执行了sql命令(它需要创建的临时表大于10米),因为tmpfs限制了大小,所以它报告了一个错误。那么tmpfs有哪些适用场景呢?公文中主要有以下几点:

我们需要它在内核中,但是我们看不到它

2.2以上的Glibc版本必须在/dev/shm中安装tmpfs,以用于POSIX共享内存

有许多用途,包括那些还不知道的用途

包括我现在的公司,是有需求的。如果一些数据放在磁盘上,访问压力根本无法支持。因此,临时制作一个tmpfs缓存来缓解压力。当然,这不是最终的解决办法。因此,总之,ramfs和tmpfs有以下异同:

Ramfs会自动增加空的数据写入,最终可能导致系统所有内存耗尽

Tmpfs在重新装载时可以限制大小,并且会自动装载增长

Ramfs不会使用交换

Tmpfs将使用交换

内存文件系统是一个非常聪明的内存文件系统,由VFS自己的结构形成。

RAMFS没有自己的文件存储结构,其文件存储在页面缓存中,目录结构由dentry链表本身描述,文件由VFS inode结构本身描述。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » RAMFS是什么

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情