zoukankan      html  css  js  c++  java
  • 什么是tmpfs

    什么是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的目录不要放太大的东西
  • 相关阅读:
    【读书笔记-数据挖掘概念与技术】数据预处理
    【读书笔记-数据挖掘概念与技术】认识数据
    数据挖掘中的基本概念
    【cs229-Lecture10】特征选择
    【cs229-Lecture8】顺序最小优化算法
    支持向量机SVM进阶
    【SPMF开源数据挖掘平台入门】MaxSP算法使用说明
    【cs229-Lecture9】经验风险最小化
    【数据清洗】2013-数据质量及数据清洗方法
    【数据清洗】2012-数据清洗及其一般性系统框架
  • 原文地址:https://www.cnblogs.com/zhoading/p/8257727.html
Copyright © 2011-2022 走看看