文章目录
- iostat命令简介
- iostat命令参数
- iostat输出信息
- CPU利用率输出信息
- 磁盘利用率输出信息
- 更详细的磁盘利用率输出信息
- iostat命令使用示例
- iostat -kdx 1
- iostat数据来源
- 相关参考
iostat命令简介
iostat工具可用于CPU使用统计信息和设备的输入输出统计信息。iostat能支持显示的CPU使用统计信息比较简单,更广泛的用途是用于查看系统中磁盘的使用情况。
iostat命令参数
iostat基本命令参数如下:
-c: 显示CPU使用情况
-d: 显示磁盘使用情况
-N: 显示磁盘阵列(LVM) 信息
-n: 显示NFS 使用情况
-k: 以 KB 为单位显示
-m: 以 M 为单位显示
-t: 报告每秒向终端读取和写入的字符数和CPU的信息
-V: 显示版本信息
-x: 显示详细信息
-p:[磁盘] 显示磁盘和分区的情况
iostat输出信息
iostat支持输出的信息包括两部分:CPU利用率统计和磁盘利用率统计信息。
CPU利用率输出信息
iostat -c会输出系统CPU利用率信息如下:
输出字段说明:
- %user:显示在用户级别执行时发生的CPU利用率百分比;
- %nice:用nice显示在用户级别执行时发生的CPU利用率百分比优先事项;
- %system:显示在系统级别(内核)执行时发生的CPU利用率百分比;
- %iowait:显示一个或多个CPU空闲的时间百分比,在此期间系统有一个外站正在处理磁盘I/O请求;
- %score:显示虚拟CPU在hypervisor正在为另一个虚拟处理器提供服务;
- %idle:显示CPU空闲且系统没有外站的时间百分比正在处理磁盘I/O请求。
磁盘利用率输出信息
iostat -d会输出系统磁盘利用率信息如下:
输出字段说明:
- tps:表示每秒发送到设备的传输次数;
- Blk_read/s(kB_read/s,MB_read/s):从设备读取的数据量,以每秒块数(KB、MB)表示。块相当于扇区,通常大小为512字节。
- Blk_wrtn/s(kB_wrtn/s,MB_wrtn/s):写入设备的数据量,以每秒块数(KB、MB)表示;
- Blk_dcd/s(kB_dscd/s,MB_dscd/s):设备丢弃的数据量,以每秒块数(KB、MB)表示;
- Blk_w+d/s(kB_w+d/s,MB_w+d/s):为设备写入或丢弃的数据量,以每秒块数(KB、MB)表示;
- Blk_read(kB_read,MB_read):读取的总块数(KB、MB);
- Blk_wrtn(kB_wrtn,MB_wrtn):写入的总块数(KB、MB);
- Blk_dscd(kB_dscd,MB_dscd):丢弃的块总数(KB、MB);
- Blk_w+d(kB_w+d,MB_w+d):写入或丢弃的块总数(KB、MB)。
更详细的磁盘利用率输出信息
iostat -dx会输出更为详细的系统磁盘利用率信息:
读请求相关字段:
- r/s:设备每秒完成的读取请求数(合并后);
- rsec/s(rkB/s,rMB/s):每秒从设备读取的扇区数或数据量(KB、MB);
- rrqm/s :每秒合并到设备队列中的读取请求数;
- %rrqm:在发送到设备之前合并在一起的读取请求的百分比;
- r_await:向要服务的设备发出读取请求到完成的平均等待时间(MS),包括队列等待时间与服务时间;
- rareq-sz:向设备发出的读取请求的平均大小(KB);
写请求相关字段:
- w/s:设备每秒完成的写入请求数(合并后);
- wsec/s(wkB/s,wMB/s):每秒写入设备的扇区数或数据量(KB、MB);
- wrqm/s:每秒合并到设备队列中的写入请求数;
- %wrqm:写入请求在发送到设备之前合并在一起的百分比;
- w_await:向要服务的设备发出写入请求到完成的平均时间(MS),包括队列等待时间与服务时间;
- wareq sz:向设备发出的写入请求的平均大小(KB);
丢弃请求相关字段:
- d/s:设备每秒完成的丢弃请求数(合并后);
- dsec/s(dkB/s,dMB/s):每秒为设备丢弃的扇区数(或数据量,KB、MB);
- drqm/s:每秒合并到设备队列中的丢弃请求数;
- %drqm:在发送到设备之前合并在一起的丢弃请求的百分比;
- d_await:向要服务的设备发出丢弃请求到完成的平均等待时间(MS),包括队列等待时间与服务时间;
- dareq sz:向设备发出的丢弃请求的平均大小(KB);
刷新请求相关字段:
- f/s:设备每秒完成的刷新请求数(合并后);
- f_await:向要服务的设备发出刷新请求的平均时间(MS);
其它类型字段:
- sec/s(kB/s,MB/s):每个从设备读取、写入或丢弃的扇区数(或数据量,KB、MB);
- aqu-sz:向设备发出的请求的平均队列长度。注:在以前的版本中,此字段被称为avgqu sz;
- rqm/s:每秒合并到设备队列中的I/O请求数;
- await:向要服务的设备发出I/O请求到完成的平均等待时间(MS),包括队列等待时间与服务时间;
- %util:向设备发出I/O请求的运行时间百分比(带宽利用率设备的操作)。对于服务的设备,当该值接近100%时,会出现设备饱和连续请求。但对于并行服务请求的设备,如RAID阵列和现代SSD,此数字并不反映其性能限制;
- svctm:平均每次设备I/O请求的服务时间 (ms)。如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长。目前该字段已被废弃。
iostat命令使用示例
iostat -kdx 1
iostat -kdx 1会每隔1s刷新显示设备的统计信息,适合用于持续观察系统磁盘的使用情况。
iostat数据来源
/proc/stat contains system statistics.
/proc/uptime contains system uptime.
/proc/diskstats contains disks statistics.
/sys contains statistics for block devices.
/proc/self/mountstats contains statistics for network filesystems.
/dev/disk contains persistent device names.
相关参考
- iostat命令man手册