第九章 设备管理
-
Linux系统中,用户是通过文件系统与设备来连接的所有设备都被当做特别文件,每个设备都对应文件系统中的一个索引节点,都有一个文件名;每个设备都是在驱动控制下允许的,驱动程序则与/dev目录下的特殊文件联系在一起。
-
Linux采用设备文件统一管理硬件设备。
-
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开始
-
虚拟设备文件
没有对应物理设备的设备文件/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
随机发生器或伪随机数发生器,它允许程序访问来自设备驱动程序或其他来源的背景噪声。令
-
-
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: #二级缓存
-
查看内存信息的命令
-
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
类别 项目 含义 说明 Procs r 运行和等待执行的进程数 展示了正在执行和等待CPU资源的任务个数。当这个值超过了CPU数目,就会出现CPU瓶颈了 b 在等待资源的进程数 Memory swpd 正在使用的swap大小单位K 如果大于0说明内存不足 free 空闲的内存空间 buff 已使用的buffers内存大小,对块设备的读写进行缓冲 cache 已使用的cache内存大小,文件系统的缓冲 Swap si 由磁盘进入内存的量 如果大于0说明内存不足 so 由内存进入磁盘的量 IO bi 从块设备读入的数据总量(读磁盘) (KB/s), bo 写入到块设备的数据总理(写磁盘) (KB/s) System in 每秒产生的中断次数 cs 每秒产生的上下文切换次数 上面这2个值越大,会看到由内核消耗的CPU时间会越多 CPU us 用户进程消耗的CPU时间百分比 us 的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,那么我们就该考虑优化程序算法或者进行加速了 sy 内核进程消耗的CPU时间百分比 sy 的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因。 一般us+ys<80% id 空闲时间的比例 wa IO等待消耗的CPU时间百分比 wa 的值高时超过20%,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作)。
-
-
查看块设备的命令
-
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:设备挂载的挂载点
-
-
磁盘配额限制的用户和用户组,只能是普通用户和用户组,对root用户是不适用的,可以限制用户占用的磁盘容量,也可以限制用户允许占用的文件数
-
磁盘配额的时候,文件系统必须支持磁盘配额,一般来说,是通过编辑/ect/fstab后重新载入文件系统的方法,来让文件系统支持磁盘配额。
-
磁盘配额就是首先分析整个文件系统中每个用户和组拥有的文件总数和总容量,然后将这些数据记录在文件系统的最顶层目录中,再使用此记录文件中各个用户和组的配额限制值去规范磁盘使用量。
-
磁盘配额命令
-
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 用户名 容量软限制 容量硬限制 个数软限制 个数硬限制 分区名
-