简介:

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

sudo mount -t ramfs -o size=10M ramfs ./ramfs/

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

测试时你会发现上面这个操作是能成功的,或者你再自己虚拟机上干脆做狠点,直接写一个比内存更大的文件,你会发现瞬间系统就卡主了。另外在dd命令如果不以root用户执行就会权限不够:

dd: opening `./ramfs/test.file': Permission denied

 

测试:

        使用工具

        (1)  树莓派 官方镜像 

      (2)putty 进行 登录, 并操作

        Note: 本实验直接采用的是 root 用户进行登录实验

1. 登录 Linux 系统;

2. 准备 一个10M的文件;

3. 创建一个测试目录并将测试目录挂载到虚拟内存

4. 将10M的文件多次传入, 观察内存变化

(1) 未操作前的内存 free 的大小、buff/cache 的大小

(2) 三次拷贝10M的文件进挂载的目录时 free 的大小变化,buff/cache 的大小变化

(3) 删除掉之前拷贝的三个10M文件之后 free 的大小变化, buff/cache 的大小变化

综上:

     ramfs 使用时, 无论设置的大小为多大, 在内存充足的情况下, 是可以无限放置文件的, 本例中设置大小为1M, 放置文件总大小为30M, 以此可见, 使用大小的管理需要自行控制...

 

Note: 

     另外本人还试过

      (1)  输入大于内存的文件, 结果系统无响应了, 但是IP还是能够扫描到

      (2) 当使用过程中 available 还可以被 应用程序 使用的物理内存大小 一直没变化过, 当free降为0时available开始发生变化, 并且逐步降为0时系统无响应

参考:

 https://www.linuxidc.com/Linux/2012-11/74356.htm

free -m

https://www.jianshu.com/p/2ffeb3a3aa90

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐