• Linux 磁盘挂载和swap空间管理


    挂载:把指定的设备和根下面的某个文件夹建立关联

    卸载:解除两者关系的过程

    挂载文件系统:mount

    格式:mount device mountpoint --- mount 设备名 挂载点

    mountpoint:挂载点目录必须事先存在,建议使用空目录

    选项:

    • -t fstype:指定文件系统类型,比如ext4

    • -r readonly,只读挂载

    • -w read and write, 读写挂载,此为默认设置,可省略

    • -n 不更新/etc/mtab,mount不可见

    • -a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有auto功能)

    • -o options:(挂载文件系统的选项),多个选项使用逗号分隔

    # async   异步模式,内存更改时,写入缓存区buffer,过一段时间再写到磁盘中,效率高,但不安全
    # sync    同步模式,内存更改时,同时写磁盘,安全,但效率低下
    # remount 重新挂载(相当于umount后再mount)
    # ro/rw   只读、读写
    # defaults(默认挂载) 相当于rw, suid, dev, exec, auto, nouser, async
    

    挂载规则:

    • 一个挂载点同一时间只能挂载一个设备,如果挂载了多个设备就只显示最后一个设备

    • 一个设备可以挂载到多个挂载点

    • 挂载点通常是空的目录文件

    查看挂载的设备:

    #通过查看/etc/mtab文件显示当前已挂载的所有设备
    mount
    #查看内核追踪到的已挂载的所有设备
    cat /proc/mounts
    

    查看挂载点情况

    findmnt   MOUNT_POINT|device
    #可以用来判断某个文件夹是不是挂载点,如果是会显示对应的数据信息
    

    查看正在访问指定文件系统的进程

    lsof MOUNT_POINT ---也可以用来查看某个挂载点是否被别人使用
    fuser -v MOUNT_POINT -- 查看是谁在使用
    

    终止所有在正访问指定的文件系统的进程

    fuser -km MOUNT_POINT

    持久挂载(重启电脑还存在)

    将挂载保存到 /etc/fstab 中可以下次开机时,自动启用挂载
    使用man 5 fstab 查看/etc/fstab配置文件格式

    配置文件格式:

    要挂载的文件系统 挂载点 文件系统类型 挂载属性 备份频率 sck检查的文件系统的顺序

    • 要挂载的文件系统:可以用设备名、uuid、卷标
      查看uuid: blkid

    • 挂载点:必须是事先存在的目录

    • 挂载属性:defaults ,acl,bind

    • 备份频率(一般用不上):0:不做备份 1:每天转储 2:每隔一天转储

    • 文件系统检查的次序:开机检测文件系统的过程。其中允许的数字是0 1 2
      0:不自检 ,1:首先自检;一般只有rootfs才用 2:非rootfs使用

    卸载文件系统:umount

    umount 设备名或挂载点

    处理交换文件和分区

    swap:是一种特殊的文件系统,叫交换文件系统。作用是缓解内存不足的情况。拿硬盘的分区来模拟内存,把内存中暂时不用的数据导入swap硬盘分区中,给内存腾出空间。利用硬盘来模拟内存.
    副作用:硬盘速度没有内存的速度快,所以会降低速度。

    swap空间分配原则:

    内存 swap
    <=2G swap就是内存的两倍(4G)
    2-8G swap等于内存大小(2-8G)
    8-64G swap是内存的0.5倍(4-32G)
    >64G swap选择4G左右

    交换空间swap实现过程:

    1. 创建交换分区或者文件 -- fdisk
    
    2. 使用mkswap写入特殊签名 -- maswap 分区
    
    3. 在/etc/fstab文件中添加适当的条目 --- xxx
    # 文件系统没有挂挂载点就写none 因为swap是用来模拟内存的
    4. 使用swapon -a 激活交换空间
    

    启用swap分区:

    swapon  [OPTION]... [DEVICE]
    

    选项:

    -a: 启用所有的交换分区
    -s: 显示交换区的使用状况

    禁用swap分区:

    swapoff  [OPTION]... [DEVICE]
    

    SWAP的优先级

    有多个二swap分区的时候,指定优先使用谁。

    swapon -s 可以查看swap的优先级
    

    可以指定swap分区0到32767的优先级,值越大优先级越高

    #修改swap的优先级:
    例如:UUID=xxxxswap   swap    pri=100      0 0
    #更改完成以后禁用再重新启用就生效了
    

    用一个文件来作为swap

    #创建一个指定大小的文件
    dd if=/dev/null of=filename bs=大小 count=1 
    
    #因为这个文件后面要用来放内存中的信息,所以为了安全要更改权限
    chmod a= filename #除了root谁也看不到
    
    #创建文件系统
    mkswap filename
    
    #挂载  /etc/fstab
    file_name(不能写uuid,uuid是针对设备来说的)  none swap defaults 0  0
    
    #启用swap
    swapon file_name
    
    

    swap的使用策略

    /proc/sys/vm/swappiness 的值决定了当内存占用达到一定的百分比时,会启用swap分区的空间

    例如/proc/sys/vm/swappiness这个值是30,则内存在使用到100-30=70%的时候,就开始出现有交换分区的使用
    

    /proc/sys/vm/swappiness值为0不会禁止交换分区的使用,是最大限度地降低了使用swap的可能性

  • 相关阅读:
    HarmonyOS应用API手势方法-绑定手势方法
    JS原生复制功能
    go的结构体嵌套(组合式继承)
    Docker,安装部署Nginx
    在VirtualLab Fusion的示例中演示连接场解算器
    Taro编译警告解决方案:Error: chunk common [mini-css-extract-plugin]
    【JVM】类加载子系统——自问自答
    python基础知识总结集合
    计算机毕业设计(附源码)python在线学习交流平台
    SpringCloud:Gateway之限流、熔断
  • 原文地址:https://www.cnblogs.com/heyongshen/p/16437676.html