zoukankan      html  css  js  c++  java
  • centos7

    疑问: 

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

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



    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
    设想:如果直接挂载,会将/tmp目录下原有的文件覆盖掉。
    mount -t tmpfs -o size=20m tmpfs /tmp
    测试:在/ets/fstab 文件内直接进行配置挂载,重启后生效
    测试:如何卸载 umount 已经挂载的/tmp
    方法一: 
    如果没有在/etc/fstab内配置,则直接 umount /tmp  即可。
    
    方法二:
    如果在/etc/fstab内配置,则删除配置,然后mount -a (--测试/etc/fstab无错误),最后重启系统  即可。







    **** 好看的皮囊千篇一律,有趣的灵魂万里挑一 ****
  • 相关阅读:
    第01组 Alpha冲刺(5/6)
    第01组 Alpha冲刺(4/6)
    第01组 Alpha冲刺(3/6)
    第01组 Alpha冲刺(2/6)
    第01组 Alpha冲刺(1/6)
    第01组(17)需求分析报告
    第01组(17)团队展示
    结对编程作业
    Leetcode 每日一题:1014. 最佳观光组合
    Leetcode13. 罗马数字转整数
  • 原文地址:https://www.cnblogs.com/shijunjie/p/14797011.html
Copyright © 2011-2022 走看看