今天来学习一个Linux下与磁盘密切相关的命令
----iostat----
顾名思义,显示磁盘Input/output的状态,当这个命令除了可以显示磁盘的I/O状态外,还可以显示cpu的状态
// 现在虚拟机上只有系统盘 sda
#iostat
Linux 2.6.32-71.el6.x86_64 (gexy) 08/14/15 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.32 0.00 1.50 2.25 0.00 95.93
0.32 0.00 1.50 2.25 0.00 95.93
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 7.41 315.91 6.72 147876 3146
scd0 0.12 1.78 0.00 832 0
dm-0 11.61 295.84 6.68 138482 3128
dm-1 0.75 5.95 0.00 2784 0
sda 7.41 315.91 6.72 147876 3146
scd0 0.12 1.78 0.00 832 0
dm-0 11.61 295.84 6.68 138482 3128
dm-1 0.75 5.95 0.00 2784 0
先简单的介绍命令的使用方式,
iostat -c // 仅显示cpu的状态
iostat -d // 仅显示磁盘的状态
iostat interval [count] // 没多少秒执行一次 [执行多少次,默认一直执行]
iostat sdX // 显示该磁盘的状态
iostat -p sdX // 显示该磁盘的所有分区的状态
iostat -x // 显示扩展的状态
显示的字段
tps // 每秒发送的io请求数
Blk_read/s // 表示每秒读取多少个块,其中块表示磁盘块大小(512byte)
Blk_write/s // 每秒写多少个块
kB_read/s // 每秒读多少个字节
如何查看主机上的磁盘数量???
# lsblk // 可以查看到所有的磁盘及分区
有的机器上可能没有安装lsblk, 执行 lsblk -d则只显示磁盘名,不显示分区
# parted -l //更详细的磁盘分区信息
其中还包含逻辑扇区和物理扇区的大小
查看磁盘挂载点
# df
# mount
# cat /etc/mtab // 如果用户的磁盘想重启后自动挂载 则需要按照该文件中的格式写入该文件中
相关名称解释
1.
扇区: 把盘片看成一个圆,可以分割成一个一个连续的扇形,每一个扇形就是一个扇区,磁盘的读写是以扇区为单位的。
为什么规定扇区?
低级格式化,为了方便磁盘寻道。
1.1
物理扇区: 可以理解为给磁盘用的。
1.2
逻辑扇区: 可以理解为给操作系统用的。
2.
块设备: I/O设备分为两类, 块设备和字符设备。块设备将信息存储在固定大小的块中,每个块都有自己的地址。磁盘是常见的块设备
3.
字符设备: 指在I/O传输的过程中以字符为单位进行传输的设备,例如键盘,打印机。(字符并不一定是字节)
4.
主设备号和次设备号: Linux的设备管理和文件时紧密相连的,各个设备都以文件的形式保存在/dev目录下,称为设备文件。为了管理这些设备,系统为每一个设备文件都进行了编号,编号又分为主设备号和次设备号,主设备号用来区分设备种类(如磁盘,键盘等,约定硬盘的主设备号为3),次设备号用来区别同一类型的不同设备。
5.
dm: Device Mapper,从逻辑设备到物理设备的映射机制。 LVM就是基于该机制实现的。
// 在/dev目录下执行
# ll //其中第5,6项表示主设备号和次设备号。 以d 开头的为目录, 以l开头的为链接文件, 以d开头的为块设备, 以c开头的为字符设备
6.
IO调度和IO队列: 向块设备中写入或读取数据时,IO请求要先进入IO队列,等待调度。
IO调度和IO队列是针对块设备而言的,如果一块磁盘被分成5个分区,则这块磁盘对应5个块设备,即拥有5个IO队列。
IO调度程序通过维护IO队列,使得杂乱无章的IO队列有序的执行IO,
7.
IO深度: 指IO队列中的深度,如果一块磁盘分成5个分区,则这个磁盘的IO深度指这5个IO队列的深度。
IO深度更多知识 http://blog.csdn.net/haiross/article/details/38517757