首页 > 其他分享 >iostat

iostat

时间:2023-11-23 10:34:56浏览次数:39  
标签:kB dm 0.00 iostat 磁盘 CPU

参考:https://zhuanlan.zhihu.com/p/649946956

安装

#默认已安装
yum install sysstat -y

选项参数

iostat <options> <device name>
-c 显示CPU使用情况
-d 显示磁盘使用情况
--dec={ 0 | 1 | 2 } 指定要使用的小数位数,默认为 2
-g GROUP_NAME { DEVICE [...] | ALL  显示一组设备的统计信息
-H 此选项必须与选项 -g 一起使用,指示只显示组的全局统计信息,而不显示组中单个设备的统计信息
-h 以可读格式打印大小
-j { ID | LABEL | PATH | UUID | ... } [ DEVICE [...] | ALL ] 显示永久设备名。选项 ID、LABEL 等用于指定持久名称的类型
-k 以 KB 为单位显示
-m 以 MB 为单位显示
-N 显示磁盘阵列(LVM) 信息
-n 显示NFS 使用情况
-p [ { DEVICE [,...] | ALL } ] 显示磁盘和分区的情况
-t 打印时间戳。时间戳格式可能取决于 S_TIME_FORMAT 环境变量
-V 显示版本信息并退出
-x 显示详细信息(显示一些扩展列的数据)
-y 如果在给定的时间间隔内显示多个记录,则忽略自系统启动以来的第一个统计信息
-z 省略在采样期间没有活动的任何设备的输出

 

常用命令

iostat -d -k 1 10         #查看TPS和吞吐量信息(磁盘读写速度单位为KB),每1s收集1次数据,共收集10次
iostat -d -m 2            #查看TPS和吞吐量信息(磁盘读写速度单位为MB),每2s收集1次数据
iostat -d -x -k 1 10      #查看设备使用率(%util)、响应时间(await)等详细数据, 每1s收集1次数据,总共收集10次 
iostat -c 1 10            #查看cpu状态,每1s收集1次数据,总共收集10次

 

输出内容解析

[root@localhost ~]# iostat 
Linux 3.10.0-957.27.2.el7.x86_64 (localhost)     11/22/2023     _x86_64_    (64 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.26    0.00    0.00    0.00    0.00   99.74

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              92.77        50.93      5838.33  805661841 92351602575
dm-0              0.00         0.00         0.00      11401        528
dm-1              0.01         0.01         0.02      80713     377904
dm-2              1.32         0.01        52.66     119313  832956992
dm-3             10.88       108.36       197.10 1713991108 3117706164

 

第一行:内核版本号,主机名,当前的日期,cpu的架构,当前系统的cpu核数

cpu部分(仅根据 %iowait 不能判断出IO存在瓶颈,需结合其他指标查看):

  • %user:CPU处在用户模式下的时间百分比
  • %nice:CPU处在带NICE值的用户模式下的时间百分比
  • %system:CPU处在系统模式下的时间百分比
  • %iowait:CPU等待输入输出完成时间的百分比
  • %steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比
  • %idle:CPU空闲时间百分比

第三部分:

  • Device:/dev 目录下的磁盘(或分区)名称。(本文中的dm-x是容器的分区,sda是宿主机的io)
  • tps:该设备每秒的传输次数。一次传输即一次 I/O 请求,多个逻辑请求可能会被合并为一次 I/O 请求。一次传输请求的大小是未知的
  • kB_read/s:每秒从磁盘读取数据大小,单位KB/s
  • kB_wrtn/s:每秒写入磁盘的数据的大小,单位KB/s
  • kB_dscd/s: 每秒磁盘的丢块数,单数KB/s
  • kB_read:从磁盘读出的数据总数,单位KB
  • kB_wrtn:写入磁盘的的数据总数,单位KB
  • kB_dscd: 磁盘总的丢块数量

需要注意的是,如果使用iostat -dk 2这样的命令,每2s收集一次数据,则kB_wrtn的含义是2s内写入磁盘的数据总数,而kB_read的含义是2s内从磁盘读出的数据总数,kB_dscd的含义则是2s内磁盘块的丢块数量。

如果没有时间间隔参数,例如iostat -dk,则kB_wrtn的含义是从开机以来的写入磁盘的数据总量,kB_read的含义是从开机以来的从磁盘读出的数据总数,kB_dscd的含义则是开机以来的磁盘块的丢块数量。

 

-x 扩展列

[root@localhost ~]# iostat -x
Linux 3.10.0-957.27.2.el7.x86_64 (localhost)     11/22/2023     _x86_64_    (64 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.26    0.00    0.00    0.00    0.00   99.74

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     7.12    1.66   91.11    50.93  5838.52   126.97     0.17    1.79    1.78    1.79   0.32   2.97
dm-0              0.00     0.00    0.00    0.00     0.00     0.00    13.07     0.00    2.33    0.02   31.95   0.58   0.00
dm-1              0.00     0.00    0.00    0.01     0.01     0.02    10.35     0.00   24.78    7.04   26.37  14.20   0.01
dm-2              0.00     0.00    0.00    1.32     0.01    52.66    79.95     0.03   25.61   10.31   25.61  12.42   1.64
dm-3              0.00     0.00    3.58    7.30   108.35   197.09    56.14     0.15   13.78    0.60   20.24   4.52   4.92
dm-4              0.00     0.00    0.00    0.00     0.00     0.00    19.69     0.00   32.17    0.92   46.22  28.32   0.00
  • rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge)
  • wrqm/s:每秒这个设备相关的写入请求有多少被Merge了
  • r/s:每秒向磁盘发起的读操作数
  • w/s:每秒向磁盘发起的写操作数
  • rkB/s:每秒读K字节数
  • wkB/s:每秒写K字节数
  • avgrq-sz:发送到设备的请求的平均大小,单位是扇区
  • avgqu-sz:平均请求队列的长度,队列长度越短越好,观察磁盘性能的核心指标
  • await:每个IO请求的处理的平均时间(以毫秒为单位)
  • r_await:每个读操作平均所需的时间;不仅包括硬盘设备读操作的时间,还包括了在kernel队列中等待的时间
  • w_await:每个写操作平均所需的时间;不仅包括硬盘设备写操作的时间,还包括了在kernel队列中等待的时间
  • svctm:表示平均每次设备I/O操作的服务时间(以毫秒为单位)
  • %util:一秒中有百分之多少的时间用于 I/O 操作,即被io消耗的cpu百分比,向设备发出I/O请求的经过时间百分比(设备的带宽利用率)。当串行服务请求的设备的该值接近100%时,将发生设备饱和。 但是对于并行处理请求的设备(例如RAID阵列和现代SSD),此数字并不反映其性能限制。这个指标高说明IO基本上就到瓶颈了,但是低也不一定IO就不是瓶颈。一般%util大于70%,I/O压力就比较大. 同时可以结合vmstat查看查看b参数(等待资源的进程数)和wa参数(I/O等待所占用的CPU时间的百分比,高过30%时I/O压力高)

 

测试案例

#向a.dat文件中写入8G的数据
dd if=/dev/zero of=./a.dat bs=8k count=1M oflag=direct

从 iostat -mx 1 wMB/s可以看出,目前磁盘写入速率为1.19M之间(此为容器,磁盘为dm-12),从%util看出磁盘使用率也逐渐高达100%,但此时%iowait的值仍为0%

 

从 iostat -dk 1 MB_read/s也可以看出,磁盘写入速率为1.91~2.86

 

标签:kB,dm,0.00,iostat,磁盘,CPU
From: https://www.cnblogs.com/Xinenhui/p/17850992.html

相关文章

  • 常用命令(磁盘使用)--iostat
    一、功能cpu使用情况,磁盘使用情况二、安装yuminstallsysstat三、使用命令行参数:-c:显示系统cpu信息-d:只显示设备使用情况-h:人性化输出-m:mb/s为单位-k:Kb/s为单位-o:用json格式输出-t:显示每次统计信息时间,脚本监控适合-p:指定设备统计-x:打印更详细扩展内容使用实......
  • Linux之iostat
    Linux之iostat前言iostat主要用于监控系统设备的IO负载情况。iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。1.命令功能:通过iostat方便查看CPU、网卡、tty......
  • 每天一个linux命令(47):iostat命令
    Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。iostat属于s......
  • Mapping iostat to the node exporter’s node_disk_* metrics
    参考:https://www.robustperception.io/mapping-iostat-to-the-node-exporters-node_disk_-metrics/ Thenodeexporterandtoolslikeiostatandsarusethesamecoredata,buthowdotheyrelatetoeachother? Prometheusmetricnamestendtotieprettydirect......
  • linux iostat命令
    作者:天之翼Linux系统出现了性能问题,一般我们可以通过top、iostat、free、vmstat等命令来查看初步定位问题。其中iostat可以给我们提供丰富的IO状态数据。基本使用$iostat-d-k110参数-d表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;110......
  • iostat相关参数说明——await:平均每次设备I/O操作的等待时间 (毫秒),如果%util接近 100
    iostat是I/Ostatistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。iostat的语法如下:iostat[......
  • iostat
    统计并输出CPU使用信息及特定设备或分区的IO信息iostat-c仅显示CPU使用情况统计信息iostat-d仅显示设备/分区使用情况统计信息iostat-d2统计设备/分区使用情况并每隔2秒刷新一次 [root@liulangyuproc]#iostatLinux2.6.32-431.20.3.el6.x86_64(liulangyu)08/1......
  • Linux IO实时监控iostat命令详解
    简介iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。 语法iostat[-c][-d][-h][-N][-k|-m][-t][......
  • iostat命令详解
    iostat命令详解iostat用于输出CPU和磁盘输入输出、分区、网络文件系统NFS相关的统计信息。iostat命令用于监控系统设备的输入/输出情况,并生成报告,以便根据统计报告修改系统......
  • -bash: iostat: 未找到命令
    运维排查哪个进程比较消耗io,发现终端没有iostat,下面跟着我一起进行安装把。一、在线安装[root@ops1~]#iostat#发现centos未安装iostat-bash:iostat:未......