文档章节

tmpfs介绍与使用

s
 spiders
发布于 2016/09/21 15:32
字数 986
阅读 79
收藏 0

1 Tmpfs是什么

tmpfs是一种虚拟内存文件系统,而不是块设备。是基于内存的文件系统,创建时不需要使用mkfs等初始化
它最大的特点就是它的存储空间在VM(virtual memory),VM是由linux内核里面的vm子系统管理的。
linux下面VM的大小由RM(Real Memory)和swap组成,RM的大小就是物理内存的大小,而Swap的大小是由自己决定的。
Swap是通过硬盘虚拟出来的内存空间,因此它的读写速度相对RM(Real Memory)要慢许多,当一个进程申请一定数量的内存时,如内核的vm子系统发现没有足够的RM时,就会把RM里面的一些不常用的数据交换到Swap里面,如果需要重新使用这些数据再把它们从Swap交换到RM里面。如果有足够大的物理内存,可以不划分Swap分区。

VM由RM+Swap两部分组成,因此tmpfs最大的存储空间可达(The size of RM + The size of Swap)。 但是对于tmpfs本身而言,它并不知道自己使用的空间是RM还是Swap,这一切都是由内核的vm子系统管理的。
tmpfs默认的大小是RM的一半,假如你的物理内存是1024M,那么tmpfs默认的大小就是512M
一般情况下,是配置的小于物理内存大小的。
tmpfs配置的大小并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节;如果它最大为1G,里头放有100M文件,那剩余的900M仍然可为其它应用程序所使用,但它所占用的100M内存,是不会被系统回收重新划分的。
当删除tmpfs中文件,tmpfs 文件系统驱动程序会动态地减小文件系统并释放 VM 资源。

优势 :

1、 动态文件系统的大小。

2、tmpfs 的另一个主要的好处是它闪电般的速度。因为典型的tmpfs文件系统会完全驻留在内存 RAM 中,读写几乎可以是瞬间的。同时它也有一个缺点tmpfs数据在重新启动之后不会保留,因为虚拟内存本质上就是易失的。所以有必要做一些脚本做诸如加载,绑定的操作。

注意:tmpfs不具备持久性,重启后数据不保留,请务必注意。

2 Tmpfs大小调整

有时候,当应用程序使用到Tmpfs时,而在部署的时候如果没有对应用程序占用的内存做足够的评估时,就有可能把Tmpfs用满,这个时候就需要调整Tmpfs的大小了,当然,调整的大小不能大于你机器内存大小,否则,你只能换机器了,又或是优化你的应用程序。

可以看到tmpfs的大小为3G,比如我们想调整到5G。

1) umount tmpfs

在这里要注意,由于umount会把卸载tmpfs文件系统,意味着你的应用程序使用的共享内存将会被删除,如果数据较重要,在umount前记得备份。

root@TENCENT64 /dev]# umount /dev/shm
umount: /dev/shm: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))

这里可以看到,umount失败了,原因比较明显,/dev/shm被其它进程使用了,所以在umount前需要把使用/dev/shm的所有进程都停掉。

如错误说明,可以使用fuser –km /dev/shm命令把加载的进程都kill掉,再进行umount

fuser –km /dev/shm
umount /dev/shm

2) 调整tmpfs的大小

通过修改/etc/fstab文件来修改/dev/shm的容量,在文件中修改tmpfs行,如下图:

0 0

修改后,重新mount tmpfs即可。

mount /dev/shm

本文转载自:http://www.cnblogs.com/derrick/p/4033452.html?utm_source=tuicool&utm_medium=referral

共有 人打赏支持
s
粉丝 2
博文 56
码字总数 14428
作品 0
北京
后端工程师
私信 提问
Linux RamDisk 之后 --- tmpfs 使用简介

1、介绍 RamDisk RamDisk 就是将内存中的一块区域作为物理磁盘来使用的一种技术。 对于用户来说,可以把 RamDisk 与通常的硬盘分区(如 /dev/hda1)同等对待使用。 2、RamDisk 与硬盘分区的不...

vzomik
2010/06/08
0
0
Linux 下的tmpfs文件系统(/dev/shm)

介绍 /dev/shm/是一个使用就是tmpfs文件系统的设备,其实就是一个特殊的文件系统。redhat中默认大小为物理内存的一半,使用时不用mkfs格式化。 tmpfs是Linux/Unix系统上的一种基于内存的虚拟文...

adelphos
2014/11/22
0
0
文件存储篇-内存文件系统tmpfs

前言介绍 我们都知道,对于单台服务器来说,除了CPU,内存就是我们存储数据最快的设备。 如果可以把数据直接存储在内存中,对于性能的提升就不言而喻了。 那么我们先来讲讲如何使用内存来存储...

aiweiwei24
2016/08/18
0
0
谈虚拟内存virtual memory VM系统安装

在本系列我以前的文章中,我 介绍了创建日志和使用 ReiserFS 的好处,并 展示了如何安装一个稳固的基于 Linux 2.4 的 ReiserFS 系统。在本文中,我们要谈论几个相对次要的主题。首先,我们会...

zt371
2009/05/07
269
0
linux文件系统介绍

RHEL7.2 如何设置block[root@localhost ~]# mkfs.xfs -b size=1024 /dev/sdb1 -fmeta-data=/dev/sdb1 isize=256 agcount=4, agsize=24064 blks data = bsize=1024 blocks=96256, imaxpct=25 ......

信自己belive
2017/12/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 升级中的一些常见问题

升级的时候遇到了问题了吗? 如果你想尝试重新进行升级的话,你需要首先重新恢复老的备份。不要尝试再次对 Confluence 进行升级或者在升级失败后重新启动老的 Confluence。 在升级过程中的一...

honeymoose
今天
2
0
C++随笔(四)Nuget打包

首先把自己编译好的包全部准备到一个文件夹 像这样 接下来新建一个文本文档,后缀名叫.nuspec 填写内容 <?xml version="1.0"?><package xmlns="http://schemas.microsoft.com/packaging/201......

Pulsar-V
今天
2
0
再谈使用开源软件搭建数据分析平台

三年前,我写了这篇博客使用开源软件快速搭建数据分析平台, 当时收到了许多的反馈,有50个点赞和300+的收藏。到现在我还能收到一些关于dataplay2的问题。在过去的三年,开源社区和新技术的发...

naughty
今天
5
0
Python3的日期和时间

python 中处理日期时间数据通常使用datetime和time库 因为这两个库中的一些功能有些重复,所以,首先我们来比较一下这两个库的区别,这可以帮助我们在适当的情况下时候合适的库。 在Python文...

编程老陆
今天
2
0
分布式面试整理

并发和并行 并行是两个任务同时进行,而并发呢,则是一会做一个任务一会又切换做另一个任务。 临界区 临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用,但是每一次,只能有...

群星纪元
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部