1、概述

tmpfs是ramfs的衍生品,ramfs是基于RAM的文件系统,不能使用swap空间;tmpfs可以动态释放空间、可以使用swap空间。ramfs不能控制使用内存的大小容易使内存爆掉;而tmpfs可以在mount的时候指定size来控制使用内存的大小,不会导致系统崩溃。tmapfs是存储在VM的文件系统,VM是linux的虚拟内存,由RM(物理内存)和swap组成。RM的读写性能优于swap,swap是物理磁盘虚拟出来的内存空间。具体tmpfs使用的是RM还是swap是不可控的,

这是由linux内核的vm子系统管理的。

tmpfs默认是物理内存大小的一半,比如物理内存是32G,那么tmpfs就是16G。这部分内存空间他并不会完全占用,只有挂载存储文件后才会占用相应大小的空间,例如

16G的tmpfs文件系统,存放了200M的文件那么它就只占用了200M的内存空间,其他的空间还是可以被其它程序调用。当删除了文件后,系统会动态的将文件占用的那部分内存进行回收。

2、使用

由于项目中用到高io、对读写性能要求都比较高,磁盘就不能满目需求,此时可以将这部分数据放到tmpfs,但是要确定数据不会是内存爆掉!自行估算,tmpfs默认使用一般的内存,如32G的内存,tmpfs会占用16G,当然可以mount时通过size参数指定大小。tmpfs是存储在虚拟内存的,所以不需要mkfs,直接挂载就可以使用:

#mount -t tmpfs  -o  size=16g  tmpfs  /data/spark-tmp

为了方便使用,添加到/etc/fstab自动挂载。

#vim  /etc/fstab

tmpfs       /data/spark-tmp    tmpfs      defaults,size=16g    0  0

3、对tmpfs进行扩容

可以直接写到/etc/fstab文件里面,通过size修改tmpfs的大小,size必须是整数。

#vim  /etc/fstab

tmpfs       /data/spark-tmp    tmpfs      defaults,size=19g    0  0

#mount  -o  remount  /data/spark-tmp

4、优缺点

优点:

1)可以动态调整大小; 2)能使用swap空间

缺点:

断电重启或者umount  tmpfs都会使数据丢失。

5、使用建议

适合存储socket、session等,对于高io的临时数据也可以选择进行存储,对于高io并且还需要持久化到磁盘的,需要通过其他手段,tmpfs可以提高linux系统的性能。

linux之tmpfs的更多相关文章

  1. Linux下tmpfs介绍及使用

    tmpfs介绍 tmpfs是一种虚拟内存文件系统,而不是块设备.是基于内存的文件系统,创建时不需要使用mkfs等初始化它最大的特点就是它的存储空间在VM(virtual memory),VM是由lin ...

  2. linux里tmpfs文件系统

    linux里tmpfs文件系统 是一个虚拟内存文件系统,它不同于传统的用块设备形式来实现的Ramdisk,也不同于针对物理内存的Ramfs.Tmpfs可以使用物理内存,也可以使用交换分区. umoun ...

  3. Linux的tmpfs文件系统

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

  4. Linux下tmpfs与ramfs的区别

      ramfs是Linux下一种基于RAM做存储的文件系统.在使用过程中你就可以把ramfs理解为在普通的HDD上建立了一个文件系统,而现在HDD被替换成了RAM,因为是RAM做存储所以会有很高的存储 ...

  5. 转://Linux下tmpfs介绍及使用

    tmpfs介绍 tmpfs是一种虚拟内存文件系统,而不是块设备.是基于内存的文件系统,创建时不需要使用mkfs等初始化它最大的特点就是它的存储空间在VM(virtual memory),VM是由lin ...

  6. Linux的tmpfs和ramfs

    tmpfs tmpfs是一种虚拟内存文件系统, 它的存储空间在VM里面,现在大多数操作系统都采用了虚拟内存管理机制, VM(Virtual Memory) 是由Linux内核里面的VM子系统管理. V ...

  7. LInux 文件系统 tmpfs 分区不显示解决

    因为不小心把 kernel 的 tmpfs 的选项去掉,导致 文件系统内的 tmpfs 分区不显示. kernel 打开如下选项即可 在文件系统内就会有相关显示

  8. 【Linux】tmpfs简介及增加方式

    一. 什么是tmpfs? tmpfs是一种基于内存的文件系统,它和虚拟磁盘ramdisk比较类似,但不完全相同,和ramdisk一样,tmpfs可以使用RAM,但它也可以使用swap分区来存储.而且传 ...

  9. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

随机推荐

  1. LeetCode133:Clone Graph

    题目: Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors. ...

  2. asp.net 网站监控方案

    前言:监控web网站方法有很多种,这篇文章说一下对windows服务器 asp.net网站的监控 采用的方案,Powershell + Influxdb + Grafana 1.PowerShell ...

  3. NetCore偶尔有用篇:NetCore项目发布为Nuget包

    一.简介 1.nuget大家已经不陌生. 2.netcore默认引用便是nuget,并处理了嵌套关系. 3.netcore已经支持直接编译生成nuget包. 4.本文介绍如何把自己建立的项目发布为nu ...

  4. vs2017 修改项目名称

    由于经常接到各种项目需求, 又不想重新搭建框架. 于是便想到直接修改项目名. 话不多说, 上图~ 1 重命名 解决方案 和  项目名称 2 重命名项目的应用程序名和命名空间 3 Ctrl+F 将旧的工 ...

  5. 第三节:使用Log4net和过滤器记录异常信息,返回异常给前端

    上次面试,遇到,在项目中如何处理业务异常和代码异常,使用txt记录异常信息后,如何直接区分出异常的类型,异常怎么分类处理,希望大家能帮我提出宝贵的意见,完善处理异常, 统一返回参数 public cl ...

  6. Hessian——轻量级远程调用方案

    Hessian是caucho公司开发的一种基于二进制RPC协议(Remote Procedure Call protocol)的轻量级远程调用框架.具有多种语言的实现,但用的最多的当然是Java实现 ...

  7. Day 22 面向对象知识.

    https://www.cnblogs.com/bigberg/p/7252349.html #类方法,静态方法, 属性方法. 类有两种作用:属性引用 和实例化.属性引用(类名.属性)class pe ...

  8. redis所有数据结构及对象------redis设计与实现

    建议点开原图看

  9. Comparable接口——容器中自定义类排序

    1.容器TreeMap,默认根据Key对象中某个属性的从小到大排列元素. (1)如下代码示例,Key是整型数字,所以按照其从小到大的顺序排列 public class TestTreeMap { pu ...

  10. 907. Sum of Subarray Minimums

    Given an array of integers A, find the sum of min(B), where B ranges over every (contiguous) subarra ...