疑问: 

系统安装完成后,查看分区情况,发现多了很多tmpfs文件系统挂载的目录,并占用了”/” 的分配空间

— 由于之前用习惯了阿里云的ECS服务器,简单明了的把所有空间都分配给了” / ” , 所以特别在意。

centos7-风君雪科技博客

tmpfs的基本认识:

什么是tmpfs

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

内核支持

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

tmpfs的优点 

使用方便:因为tmpfs是建立在VM上的,而不是物理磁盘上,所以不需要格式化就可以使用,所以不用尝试mkfs.tmpfs了:没有这条命令
动态调节大小:tmpfs的大小是动态的,用多少才分配多少,删除文件则会释放相应的VM空间快:tmpfs大部分时间是驻留在物理内存中,这使得其读写速度超快

tmpfs的缺点

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

tmpfs的应用场景

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

针对linux为什么默认将这些目录挂载tmpfs进行分析:

/dev
/dev这个目录对所有的用户都十分重要。
因为在这个目录中包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序。
它实际上是一个访问这些外部设备的端口。我们可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。
/dev/shm
/dev/shm/是一个设备文件,它使用就是tmpfs文件系统
(注意:在CentOS和RedHat下,/dev/shm目录是一个链接,指向/run/shm目录,在Ubuntu系统下tmpfs文件系统对应的是/run/shm目录,可以使用df命令查看)

但后期的centos版本中 /dev/shm 就是一个被挂载的目录
/run
它被识别为 “tmpfs”(临时文件系统),因此我们知道 /run 中的文件和目录没有存储在磁盘上,而只存储在内存中。
它们表示保存在内存(或基于磁盘的交换空间)中的数据,它看起来像是一个已挂载的文件系统,这个可以使其更易于访问和管理。
/sys/fs/cgroup
Cgroup是将任意进程进行分组化管理的Linux内核功能
cgroup本身提供将进程进行分组化管理的功能和接口的基础结构
/run/user/0
我们看到的/run/user/下的每个目录与当前登录的用户或显示管理器 gdm 相关。数字代表他们的 UID。
/run/user/0 表示root用户
/run/user/1000 表示某个普通用户

实战 tmpfs 挂载:

1、挂载某个已存在的目录,例如 /tmp

centos7-风君雪科技博客设想:如果直接挂载,会将/tmp目录下原有的文件覆盖掉。

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

centos7-风君雪科技博客测试:在/ets/fstab 文件内直接进行配置挂载,重启后生效centos7-风君雪科技博客centos7-风君雪科技博客测试:如何卸载 umount 已经挂载的/tmp

方法一: 
如果没有在/etc/fstab内配置,则直接 umount /tmp  即可。

方法二:
如果在/etc/fstab内配置,则删除配置,然后mount -a (--测试/etc/fstab无错误),最后重启系统  即可。

转载及摘抄:https://blog.csdn.net/wz947324/article/details/80007122 https://www.cnblogs.com/sdu20112013/p/11313585.html https://linux.cn/article-11008-1.html ( 探索 Linux 上的 /run )

来自为知笔记(Wiz)

**** 好看的皮囊千篇一律,有趣的灵魂万里挑一 ****