tmpfs是一种基于内存的文件系统,它和虚拟磁盘ramdisk比较类似像,但不完全相同,和ramdisk一样,tmpfs可以使用ram,但它也可以使用swap分区来存储。而且传统的ramdisk是个块设备,要用mkfs来格式化它,才能真正地使用它;而tmpfs是一个文件系统,并不是块设备,只是安装它,就可以使用了。tmpfs是最好的基于ram的文件系统。
linux内核的虚拟内存(virtual memory ,vm)资源同时来源于您的ram(物理内存)和交换分区(swap)。内核中的vm子系统负责在后台管理这些资源,通常是透明地将ram页移动到交换分区或从交换分区到ram页。
tmpfs文件系统需要vm子系统的页面来存储文件。tmpfs自己并不知道这些页面是在交换分区还是在ram中;做这种决定是内核中的vm子系统的工作。tmpfs文件系统所知道的就是它正在使用某种形式的虚拟内存。
不同于大多数“标准的”文件系统,如ext3、reiserfs和其它一些系统,tmpfs并不是存在于一个底层块设备上面。因为tmpfs是直接建立在vm之上的,您用一个简单的mount命令就可以创建tmpfs文件系统了。
# mount -t tmpfs -o size=64m tmpfs /dev/shm
/mnt/tmpfs最初会只有很小的空间,但随着文件的复制和创建,tmpfs文件系统驱动程序会分配更多的 vm,并按照需求动态地增加文件系统的空间。而且,当 /mnt/tmpfs 中的文件被删除时,tmpfs 文件系统驱动程序会动态地减小文件系统并释放 vm 资源,这样做可以将 vm 返回到循环当中以供系统中其它部分按需要使用。因为 vm 是宝贵的资源,所以您一定不希望任何东西浪费超出它实际所需的 vm,tmpfs 的好处之一就在于这些都是自动处理的。
假如tmpfs的挂载点目录下什么也没有,tmpfs并不占用vm。上面的参数64m只是告诉内核这个挂载点最大可用的vm为20m,如果不加上这个参数,tmpfs默认的大小是ram的一半,假如你的物理内存是128m,那么tmpfs默认的大小就是64m。
tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的 tmpfs 文件系统会完全驻留在 ram 中,读写几乎可以是瞬间的。即使用了一些交换分区,性能仍然是卓越的,当更多空闲的 vm 资源可以使用时,这部分 tmpfs 文件系统会被移动到 ram 中去。让 vm 子系统自动地移动部分 tmpfs 文件系统到交换分区实际上对性能上是好的,因为这样做可以让 vm 子系统为需要 ram 的进程释放空间。这一点连同它动态调整大小的能力,比选择使用传统的 ram 磁盘可以让操作系统有好得多的整体性能和灵活性。
默认情况下,tmpfs会mount到/dev/shm目录。使用tmpfs,就是说你可以使用这个目录,这个目录就是tmpfs,如你写临时文件到此目录,这些文件实际上是在vm中。由于它的数据是在vm里面,因此断电或者你卸载它之后,数据就会立即丢失,这也许就是它叫tmpfs的原故。
要使用tmpfs,您要在内核配置时,启用“virtual memory file system support”。
为防止tmpfs使用了全部vm,有时候要限制其大小。要创建一个最大为32 mb的tmpfs文件系统,键入:
# mount -t tmpfs -o size=32mtmpfs /dev/shm
添加到 /etc/fstab,应该是这样:
tmpfs /dev/shm tmpfs size=32m 0 0
华为正着手开发自己的操作系统
笔记本也玩触摸?Thinker:3K屏幕+触摸 或许是你的菜
百度DuerOS引入基于Qualcomm解决方案的耳机和智能音箱中
“国家企业技术中心”缘何落户紫光国微
[图文]三端集成稳压可调电源
你了解Linux下的tmpfs文件系统?
600W户外储能电源电路的优选元器件
三星Galaxy A90 5G带来新体验,核心技术是关键
三维图像指纹传感器问世 CMOS一触即发
激光焊接机焊接薄料时怎样让材料不变形
随着新兴技术的崛起,国内机器人上市公司整体发展良好
众巨头齐聚南京,抢先占领中国数字化市场
华为计划未来五年内在波兰投资7.93亿美元来推动波兰5G网络的建设
浪潮AIStation突破企业AI计算资源极限,高效共享GPU
三星旗下子公司IPO涉嫌造假 恐要面临退市风险
维信诺2019年度业绩公布,全年实现净利润达6512万元
中兴通讯已位居中国企业300强社会责任发展指数前100名
用变频器的电机为什么发抖?变频器带动电机运行产生抖动怎么处理?
曙光存储支持亚洲大规模冷冻电镜建设
明天或掀开这个谜,HTC发布三款手机:无按键手机