Linux: 内存文件系统 ramfs
简介:ramfs是Linux下一种基于RAM做存储的文件系统。在使用过程中你就可以把ramfs理解为在普通的HDD上建立了一个文件系统,而现在HDD被替换成了RAM,因为是RAM做存储所以会有很高的存储效率。由于ramfs的实现就相当于把RAM作为最后一层的存储,所以在ramfs中不会使用swap。你什么时候听过会把HDD上的文件swap到哪里去吗?平常说的swap都是针对内...
简介:
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
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)