什么是tmpfs

tmpfs是Linux/Unix系统上的一种基于内存的文件系统。tmpfs可以使用您的内存或swap分区来存储文件。

实现原理:基于VM子系统

tmpfs是基于Linux的虚拟内存管理子系统,面向普通用户的,根据用户需要随时可以创建此类型目录,以方便快捷地获得飞一样的读写速度。

当用户创建了此类型的目录后,剩下的工作就交给MMU来完成,不论是最终是在物理内存中还是在SWAP中,都尽可能地满足用户的需求。

linux内核中的VM子系统负责在后台管理虚拟内存资源Virtual Memory,即RAM和swap资源,透明地将RAM页移动到交换分区或从交换分区到RAM页,tmpfs文件系统需要VM子系统的页面来存储文件。tmpfs自己并不知道这些页面是在交换分区还是在RAM中;做这种决定是VM子系统的工作。tmpfs文件系统所知道的就是它正在使用某种形式的虚拟内存。

内核支持

编译内核时,启用“Virtual memory file system support”就可以使用tmpfs,linux kernel从2.4以后都开始支持tmpfs。目前主流的linux系统默认已启用tmpfs,如Redhat。

关于tmpfs和VM:

大家已经知道linux的虚拟内存(VM),包括ram和swap两部分,ram就是你的物理内存,swap就是在装系统的时候划分的swap分区(在win下叫做页面文件,默认位于C:\pagefiles.sys),VM也是程序所能使用的最大内存上限,tmpfs本质上也是VM,前者划出后者的部分页面作为一个文件系统.

关于tmpfs和ramdisk:

linux下的ramdisk是由内核提供的,要使用之,mount命令挂载即可,不需要第三方工具:) 
但因为它会被视为块设备,所以仍然需要格式化该文件系统:使用mkfs命令格式化, 
而tmpfs不需要ramdisk一旦创建就会占用固定大小的物理内存,tmpfs则是动态分配

tmpfs的优点: 

一句话概括:像使用磁盘一样简单,获得飞一样的速度

  • 使用方便:因为tmpfs是建立在VM上的,而不是物理磁盘上,所以不需要格式化就可以使用,所以不用尝试mkfs.tmpfs了:没有这条命令
  • 动态调节大小:tmpfs的大小是动态的,用多少才分配多少,删除文件则会释放相应的VM空间,=.=这一点非常令人激动
  • 扩展性好:当您的物理内存不足以支撑分配为tmpfs的大小时,它会自动使用swap的页面
  • 快:tmpfs大部分时间是驻留在物理内存中,这使得其读写速度超快=.=

tmpfs的缺点:

    • 不可持久保存:tmpfs的先天优势变成了他的先天劣势:内存的特性导致位于tmpfs上的数据断电会丢失
    • 成本高:相比较硬盘的价格来说,内存无疑还是很昂贵的,所以用tmpfs的目录不要放太大的东西

什么是tmpfs的更多相关文章

  1. tmpfs详解

    一,tmpfs介绍 1. tmpfs是一种虚拟内存文件系统,正如这个定义它最大的特点就是它的存储空间在VM里面(什么是VM?后面介绍) 2. VM是由linux内核里面的vm子系统管理的东西,现在大多 ...

  2. Linux的tmpfs文件系统

    转载:http://blog.csdn.net/wxwsixis/article/details/5752186 前几天发现服务器的内存(ram)和swap使用率非常低,于是就想这么多的资源,不用岂不 ...

  3. Linux下的tmpfs文件系统(/dev/shm)

    转自:http://www.2cto.com/os/201411/354888.html 介绍 /dev/shm/是一个使用就是tmpfs文件系统的设备,其实就是一个特殊的文件系统.redhat中默认 ...

  4. 使用tmpfs作为缓存加速缓存的文件目录

    使用tmpfs作为缓存加速缓存的文件目录 [root@web02 ~]# mount -t tmpfs tmpfs /dev/shm -o size=256m[root@web02 ~]# mount ...

  5. tmpfs介绍

    tmpfs 前几天发现服务器的内存(ram)和swap使用率非常低,于是就想这么多的资源不用岂不浪费了?google了一下,认识了tmpfs,总的来说tmpfs是一种虚拟内存文件系统正如这个定义它最大 ...

  6. tmpfs:一种基于内存的文件系统

    tmpfs是一种基于内存的文件系统, tmpfs有时候使用rm(物理内存),有时候使用swap(磁盘一块区域).根据实际情况进行分配. rm:物理内存.real memery的简称? 真实内存就是电脑 ...

  7. tmpfs——Linux的一种虚拟内存文件系统

    虚拟内核文件系统(VirtualKernel File Systems),是指那些是由内核产生但不存在于硬盘上(存在于内存中)的文件系统.例如 1.proc proc文件系统为操作系统本身和应用程序之 ...

  8. SAE java应用读写文件(TmpFS和Storage)-----绝世好代码

    近期不少java用户都在提sae读写本地文件的问题,在这里结合TmpFS和Storage服务说说java应用应该如何读写文件TmpFS是一个供应用临时读写的路径,但请求过后将被销毁.出于安全考虑,sa ...

  9. tmpfs

    什么是tmpfs tmpfs是Linux/Unix系统上的一种基于内存的文件系统.tmpfs可以使用您的内存或swap分区来存储文件.由此可见,temfs主要存储暂存的文件. linux内核中的VM子 ...

  10. 【服务器环境搭建-Centos】tmpfs,【转载】

    转载来源:http://www.linuxidc.com/Linux/2013-12/93747.htm tmpfs介绍 tmpfs是一种虚拟内存文件系统,而不是块设备.是基于内存的文件系统,创建时不 ...

随机推荐

  1. Mqtt协议IOS端移植2

    MqttFramework.h #import <Foundation/Foundation.h> #import "MQTTClient.h" #import &qu ...

  2. idea设置自定义快捷键

    在说明之前,先引入一个非常好的 Intellij Idea中文教程:intelliJ Idea中文教程 一创建模板类 二使用方法备注 在IntellijIdea中我并没有找到直接对某个方法进行注释的模 ...

  3. CP936 转换成 UTF-8

    最近写了一个抓取脚本,抓取的大部分内容正常,但少部分乱码 检测字符编码,得出的结果是CP936 mb_detect_encoding($str, 'GBK, gb2312, GB18030, ISO- ...

  4. Zxing二维码解析——图文转换

    一:文字转化为二维码图片. package com.xhm.tool; import java.util.Hashtable; import android.graphics.Bitmap; impo ...

  5. Linux进程间通信(二) - 消息队列

    消息队列 消息队列是Linux IPC中很常用的一种通信方式,它通常用来在不同进程间发送特定格式的消息数据. 消息队列和之前讨论过的管道和FIFO有很大的区别,主要有以下两点(管道请查阅我的另一篇文章 ...

  6. 频繁加载、删除swf造成flash崩溃解决办法

    最近在项目中遇到flash崩溃问题,经分析,都是在swfobject.embedSWF这一步卡死,页面及flash均无反应.   造成此问题的场景是,在同一根节点上频繁清空节点.调用swfobject ...

  7. .net EF监控 MiniProfiler

    1.从NuGet上下载所需要的包:MiniProfiler.mvc,MiniProfiler,MiniProfiler.ef 2.Global.asax 加入 protected void Appli ...

  8. VS2017生成类库选择Release失效的问题

    VS的生成可以选择Debug模式或者Release模式,但是我发现在配置里面选择Release无效. 后来发现应该 在 生成->配置管理器  里面设置.

  9. spring boot mysql和mybatis

    1 选择mysql驱动 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connecto ...

  10. Bootstrap导航栏头部错位问题

    代码: <section class="header"> <div class="container"> <div class=& ...