第九章 设备管理

第九章 设备管理

  1. Linux系统中,用户是通过文件系统与设备来连接的所有设备都被当做特别文件,每个设备都对应文件系统中的一个索引节点,都有一个文件名;每个设备都是在驱动控制下允许的,驱动程序则与/dev目录下的特殊文件联系在一起。

  2. Linux采用设备文件统一管理硬件设备。

  3. Linux系统中常见的的硬件设备名称如下:

    硬件设备文件名称
    IDE设备/dev/hd[a~d]
    SCSI/SATA/USB盘/dev/sd[a~p]
    软驱/dev/fd[0~1]
    打印机/dev/lp[0~15]
    光驱/dev/cdrom
    鼠标/dev/mouse
    磁带机/dev/st0/不卷回磁带、dev/st0卷回磁带或/dev/ht0

    命名中

    第一部分是主设备号:代表设备类型可以唯一的确定设备的驱动程序和界面,

    第二部分是次设备号:代表同类设备的序号

    如“/dev/hda1”代表IDE硬盘第一个设备hda的第一个主分区,一般主分区为1~4,逻辑分区从5开始

  4. 虚拟设备文件
    没有对应物理设备的设备文件

    /dev/stdin、/dev/stdout、/dev/stderr、/dev/null、/dev/zero、/dev/full、/dev/random、/dev/fd、/dev/tcp、/dev/upd、/dev/loop等虚拟设备

    • /dev/null

      空设备,等价与一个只写文件,所有写入的东西都会消失,不可逆垃圾箱

    • /dev/zero

      伪文件输入设备,会产生连续不断的null流(二进制的零流,而不是ASCII型),写入他的东西丢失不见,从/dev/zero读出一连串null比较困难。/dev/zero主要的用处是创建一个指定长度的初始化空文件

      dd if=/dev/zero of=testzero count=1024 bs=1024

      创建一个大小为1MB的文件,该文件一块是1024字节,一共1024块,用/dev/zero文件填充他,输出到testzero文件

    • /dev/full

      一个特殊设备文件,在向其写入时总返回“设备无剩余空间”,读取时与/dev/zero近似,返回无限的二进制流,这个设备通常用来测试程序在遇到磁盘无剩余空间错误时的行为

    • /dev/random

      随机发生器或伪随机数发生器,它允许程序访问来自设备驱动程序或其他来源的背景噪声。令

  5. lscpu查看CPU信息的命令

    lscpu从sysfs和/proc/cpuinfo收集CPU信息,其主要显示内容如下:

    Architecture:        #架构
    CPU(s):              #逻辑cpu颗数
    Thread(s) per core:  #每个核心线程
    Core(s) per socket:  #每个cpu插槽核数/每颗物理cpu核数
    CPU socket(s):       #cpu插槽数
    Vendor ID:           #cpu厂商ID
    CPU family:          #cpu系列
    Model:               #型号
    Stepping:            #步进
    CPU MHz:             #cpu主频
    Virtualization:      #cpu支持的虚拟化技术
    L1d cache:           #一级缓存(L1数据缓存)
    L1i cache:           #一级缓存(L1指令缓存)
    L2 cache:            #二级缓存
    
  6. 查看内存信息的命令

    • free内存信息命令

      显示内存允许状态,包括空闲的和已知的物理内存、swap内存、被内核使用的缓冲区。

      基本格式:free [选项]

      -b:以字节为单位显示内存的使用情况
      -k:以KB为单位显示内存的使用情况,是默认选项

      -m:以MB为单位显示内存的使用情况

      -g:以GB为单位显示内存的使用情况

      -t:在输出的最终结果中,输出内存和swap分区的总量、

      -o:不显示系统缓冲

      -s:间隔秒数,根据间隔持续显示内存使用情况

      [devl@xungen ~]$ free 
                    total        used        free      shared      buffers      cache   
      Mem:           992M        210M         68M        200K        713M        580M
      -/+ buffers/cache:         143M        180M
      Swap:          1.0G        137M        886M
      

      total物理内存总容量

      used已使用的物理内存

      free可用的物理内存

      shared多进程共享的内存容量

      buff/cache磁盘缓冲/缓存使用的物理内存

      Mem行是物理内存使用情况

      -/+ buffers/cache应用已使用或可使用的内存量

      Swap行是虚拟内存作用情况

    • vmstat内存信息命令

      对系统的整体情况进行统计,可监控CPU、进程、内存等的使用情况

      基本格式1:vmstat [-a] [刷新延时 刷新次数]

      基本格式2:vmstat [选项]

      -a:用inact/active来取代buffers/cache的内存输出信息

      -f:显示从启动到目前位置系统复制的程序数,此信息是从/proc/stat中的processes字段取得的

      -s:显示从启动到目前为止由一些时间事件导致的内存变化情况

      -S 单位:零输出的数据显示单位

      -d:列出硬盘有关读写总量的统计表

      -p 分区设备文件名:查看分区硬盘的读写情况

      #vmstat 5 5
      procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
      r b   swpd   free   buff cache   si   so    bi    bo   in    cs us sy id wa
      1 0 62792   3460   9116 88092    6   30   189    89 1061   569 17 28 54 2
      0 0 62792   3400   9124 88092    0    00    14 884   434 4 14 81 0
      0 0 62792   3400   9132 88092    0    00    14 877   424 4 15 81 0
      1 0 62792   3400   9140 88092    0    00    14 868   418 6 20 74 0
      1 0 62792   3400   9148 88092    0    00    15 847   400 9 25 67 0
      
      类别项目含义说明
      Procsr运行和等待执行的进程数展示了正在执行和等待CPU资源的任务个数。当这个值超过了CPU数目,就会出现CPU瓶颈了
      b在等待资源的进程数
      Memoryswpd正在使用的swap大小单位K如果大于0说明内存不足
      free空闲的内存空间
      buff已使用的buffers内存大小,对块设备的读写进行缓冲
      cache已使用的cache内存大小,文件系统的缓冲
      Swapsi由磁盘进入内存的量如果大于0说明内存不足
      so由内存进入磁盘的量
      IObi从块设备读入的数据总量(读磁盘) (KB/s),
      bo写入到块设备的数据总理(写磁盘) (KB/s)
      Systemin每秒产生的中断次数
      cs每秒产生的上下文切换次数上面这2个值越大,会看到由内核消耗的CPU时间会越多
      CPUus用户进程消耗的CPU时间百分比us 的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,那么我们就该考虑优化程序算法或者进行加速了
      sy内核进程消耗的CPU时间百分比sy 的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因。 一般us+ys<80%
      id空闲时间的比例
      waIO等待消耗的CPU时间百分比wa 的值高时超过20%,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)。
  7. 查看块设备的命令

    • dmesg命令

      常用于查看系统硬件信息,也可以查看开机信息

      基本格式:dmesg

      查看CPU信息:dmesg |grep cpu

      查看第一块网卡信息:dmesg |grep eth0

    • lsblk命令

      列出系统中所用的可用块设备信息,还能显示他们之间的依赖关系,但是他不会列出RAM盘的信息

      基本格式:lsblk

      NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
      sdd      8:48   0   1.8T  0 disk 
      └─sdd1   8:49   0   1.8T  0 part 
      sdb      8:16   0 119.2G  0 disk 
      ├─sdb2   8:18   0   915M  0 part 
      └─sdb1   8:17   0 118.4G  0 part 
      

      NAME:块设备名

      MAJ:MIN:主要和次要设备号

      RM :设备是否可移动,1为可移动设备,0为不可移动设备

      SIZE:设备容量信息

      RO:设备是否只读,0是不只读

      TYPE:块设备是否是磁盘或磁盘上的一个分区

      MOUNTPOINT:设备挂载的挂载点

  8. 磁盘配额限制的用户和用户组,只能是普通用户和用户组,对root用户是不适用的,可以限制用户占用的磁盘容量,也可以限制用户允许占用的文件数

  9. 磁盘配额的时候,文件系统必须支持磁盘配额,一般来说,是通过编辑/ect/fstab后重新载入文件系统的方法,来让文件系统支持磁盘配额。

  10. 磁盘配额就是首先分析整个文件系统中每个用户和组拥有的文件总数和总容量,然后将这些数据记录在文件系统的最顶层目录中,再使用此记录文件中各个用户和组的配额限制值去规范磁盘使用量。

  11. 磁盘配额命令

    • quota命令

      查询磁盘空间的限制,并得知已使用多少空间

      基本格式1:quota [选项] 用户名

      基本格式2:quota [选项] 用户组

      -u:后接用户名,显示该用户的磁盘配限制,若不接用户名则显示操用户的磁盘配额限制

      -g:后接用户组,显示该用户组的磁盘配额限制

      -v:可选择用inode或磁盘容量限制值来显示

      -s:显示版本信息

      -l:仅显示当前本机文件系统的磁盘配额限制

    • quotacheck命令

      扫描文件系统(必须含有挂载参数usrquota和grpquota)并建立磁盘配额记录文件aquota.user、quota.group,可以使用该命令

      基本格式:quotacheck [选项] 文件系统

      -a:扫描所有在/ect/mtab中支持quota的文件系统,加上此参数后,后面的文件系统可以不写

      -u:针对使用者扫描文件与目录的使用情况,会创建aquota.user

      -g:针对组扫描文件与目录的使用情况,会创建aquota.group

      -v:显示扫描信息过程

      -f:强制扫描文件系统,并写入新的quota记录文件

      -M:强制以读/写的方式扫描文件系统

    • quotaon命令

      启动磁盘配额服务
      基本格式1:quotaon [选项]

      基本格式2:quotaon [选项] 文件系统名称

      -a:根据/ect/mtab文件中对文件系统的配置,启动相关的磁盘配额服务,如果不使用-a选项此命令后面必须明确的写上特定的文件系统名称

      -u:针对用户启动磁盘配额服务

      -g:针对组启动用户配额服务

      -v:显示启动服务过程的详细信息

    • quotaoff命令

      关闭磁盘配额服务

      基本格式1:quotaooff [选项]

      基本格式2:quotaoff [选项] 文件系统名称

      -a:根据/ect/mtab文件中对文件系统的配置,关闭相关的磁盘配额服务,如果不使用-a选项此命令后面必须明确的写上特定的文件系统名称

      -u:针对用户关闭磁盘配额服务

      -g:针对组关闭用户配额服务

      -v:显示启动服务过程的详细信息

    • edquota命令

      编辑磁盘配额服务

      基本格式1:edquota [-u 用户名] [-g 组名]

      基本格式2:edquota -t

      基本格式3:-p 源用户名 -u 新用户名

      -u 用户名:进入配额的VI编辑界面,修改针对用户的配置值

      -g 组名:进入配额的VI编辑界面,修改针对组的配置值

      -t:修改配额参数中的宽限时间

      -p:将源用户的磁盘配额设置复制给其他用户

      [root@localhost ~]# edquota -u myquota
      Disk quotas for user myquota (uid 710):
        Filesystem    blocks  soft   hard  inodes  soft  hard
        /dev/hda3         80     0      0      10     0     0
      

      此命令的输出信息共 3 行,第一行指明了针对哪个用户进行配额限制,第二行是各个配额值的表头,共分为 7 列,其每一列的含义如表 2所示

      表头含义
      文件系统(filesystem)说明该限制值是针对哪个文件系统(或分区);
      磁盘容量(blocks)此列的数值是 quota 自己算出来的,单位为 Kbytes,不要手动修改;
      磁盘容量的软限制(soft)当用户使用的磁盘空间超过此限制值,则用户在登陆时会收到警告信息,告知用户磁盘已满,单位为 KB;
      磁盘容量的硬限制(hard)要求用户使用的磁盘空间最大不能超过此限制值,单位为 KB;
      文件数量(inodes)同 blocks 一样,此项也是 quota自己计算出来的,无需手动修改;
      文件数量的软限制(soft)当用户拥有的文件数量超过此值,系统会发出警告信息;
      文件数量的硬限制(hard)用户拥有的文件数量不能超过此值。
    • setquota命令

      无交互配额

      基本格式:setquota -u 用户名 容量软限制 容量硬限制 个数软限制 个数硬限制 分区名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值