tmpfs详解

摘要:
如前所述,VM由RM+Swap组成,因此tmpfs的最大存储空间可以达到。然而,对于tmpfs本身,它不知道它使用的是RM还是Swap,这是由内核的vm子系统管理的。tmpfs#Mount ttmpfs osize=2mtmpfs/tmp的用途是什么?上面的命令最多为/tmp分配2m个VM。
一,tmpfs介绍

1. tmpfs是一种虚拟内存文件系统,正如这个定义它最大的特点就是它的存储空间在VM里面(什么是VM?后面介绍
2. VM是由linux内核里面的vm子系统管理的东西,现在大多数操作系统都采用了虚拟内存管理机制
 
VM介绍
1.linux下面VM(virtual memory)的大小由RM(Real Memory)swap组成
2.RM的大小就是物理内存的大小,而Swap的大小是由你自己决定的。Swap是通过硬盘虚拟出来的内存空间,因此它的读写速度相对RM(Real Memory)要慢许多,我们为什么需要Swap呢?当一个进程申请一定数量的内存时,如内核的vm子系统发现没有足够的RM时,就会把RM里面的一些不常用的数据交换到Swap里面,如果需要重新使用这些数据再把它们从Swap交换到RM里面。 如果你有足够大的物理内存,根本不需要划分Swap分区。
 
通过上面的说明,你该知道tmpfs使用的存储空间VM是什么了吧? 前面说过VM由RM+Swap两部分组成,因此tmpfs最大的存储空间可达(The size of RM + The size ofSwap)。但是对于tmpfs本身而言,它并不知道自己使用的空间是RM还是Swap,这一切都是由内核的vm子系统管理的。
 

二,怎样使用tmpfs呢?


#mount -t tmpfs -o size=20m tmpfs /mnt/tmp

上面这条命令分配了上限为20m的VM到/mnt/tmp目录下,用df命令查看一下,确实/mnt/tmp挂载点显示的大小是20m,但是tmpfs一个优点就是它的大小是随着实际存储的容量而变化的,换句话说,假如/mnt/tmp目录下什么也没有,tmpfs并不占用VM。上面的参数20m只是告诉内核这个挂载点最大可用的VM为20m,如果不加上这个参数,tmpfs默认的大小是RM的一半,假如你的物理内存是128M,那么tmpfs默认的大小就是64M,


三,tmpfs缺点


当然有,由于它的数据是在VM里面,因此断电或者你卸载它之后,数据就会立即丢失,这也许就是它叫tmpfs的原故。不过这其实不能说是缺点。那tmpfs到底有什么用呢?


四,tmpfs优点及用途


由于tmpfs使用的是VM,因此它比硬盘的速度肯定要快

因此我们可以利用这个优点使用它来提升机器的性能。


#mount -t tmpfs -o size=2m tmpfs /tmp

上面这条命令分配了最大2m的VM给/tmp。 

由于/tmp目录是放临时文件的地方,因此我们可以使用tmpfs来加快速度,由于没有挂载之前/tmp目录下的文件也许正在被使用,因此挂载之后系统也许有的程序不能正常工作。没有关系,只要在/etc/fstab里面加上下面的语句

tmpfs /tmp tmpfs size=2m 0 0

免责声明:文章转载自《tmpfs详解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【PostgREST 基本教程(一)】 PostgREST快速搭建电源设计Poe 以太网供电方案下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

关于远程调试

1.为什么要用远程调试? 1.本地环境与远程环境为不一致,线上线下数据的不一致,导致有些问题没办法在本地复现。仅靠本地调试无法直接定位问题。 2.本地调试一般有三种方法,一是写测试用例,二是在swagger上测试,需要造数据,比较麻烦。三是通过前端请求打到后端,但这种方法请求会随机打到本机和Dev环境的机器,需要禁用Dev的机器,有可能影响其他人开发。尤...

Windows server 2012安装VM tools异常解决办法

在VMWare虚拟机上安装Windows Server 2012之后安装VMWare Tools时报如下错误信息: 问题:缺少KB2919355补丁 (先安装KB2919442,在安装KB2919355) 1 https://www.microsoft.com/zh-cn/download/details.aspx?id=42162 ##KB2919...

在Virtualbox上安装MacOS

开始拾起了iOS编程。以前只是入门过,在一个越狱的iPodTouch4上跑起来自己写的一个简单应用,但已经差不多忘光了。不得不花了一整天重新来过。 破解Xcode和调试程序。毕竟对C语言开发不熟悉啊。 昨天和今天,主要精力都花在了MacOS虚机的安装上。其实去年和今年的某个时间,我也搞过虚机上装OSX10.9和10.10,但没有成功。 虽然我有一台MacP...

VirtualBox中安装Fedora9及其ARM开发环境配置

  因为要学习Tiny4412开发板的嵌入式编程,需要用到Fedora9系统(和手册对应),我就在VirtualBox虚拟机(此虚拟机安装在Ubuntu12.04上)上安装了Fedora9,下面就讲解一下Fedora9的安装及其配置。 安装Fedora9 1、下载Fedora9镜像文件,我下载的是Fedora-9-i386-DVD.iso 2、打开Virtu...

autossh使用(本机记住ssh密码)

autossh版本说明 目前发现同样叫autossh的,有好几个项目 yum,brew中的自动重启ssh会话和隧道 FeeiCN的autossh islenbo的autossh 后面两个的主要是用于记录密码,远程连接 Feeicn版安装使用 安装依赖: Linux yum install expect apt-get install expect...

安装Xshell并连接虚拟机

安装Xshell并连接虚拟机:https://my.oschina.net/u/3535099/blog/3099438 虚拟机安装教程 https://my.oschina.net/u/3535099/blog/3099424 Xshell安装包 链接:https://pan.baidu.com/s/1sSxm2Qt3-L1sLlmKyebBgA提取码...