文章目录
iostat命令不存在
问题:
            
            
              bash
              
              
            
          
          [root@jobbinqiao ~]# iostat
-bash: iostat: command not found在 RHEL 及 CentOS 最小化安裝不會包括 iostat, 只要安裝 sysstat 套件便可以解決問題, 除了 iostat 外, sysstat 套件還包括 mpstat, sar 及 sa 等工具。
解决方案:
            
            
              bash
              
              
            
          
          yum intstall -y sysstatiostat命令详解
iostat 是用来输出cpu/磁盘的I/O情况的命令
单独执行iostat,显示的结果为从系统开机到当前执行时刻的统计信息。
            
            
              bash
              
              
            
          
          [root@jobbinqiao ~]# iostat
# 当前内核版本、主机名、时间等
Linux 3.10.0-1160.11.1.el7.x86_64 (jobbinqiao)  08/21/2023      _x86_64_        (2 CPU)
#  总体cpu使用情况统计信息,对于多核cpu,这里为所有cpu的平均值
avg-cpu:  %user   %nice  %system  %iowait  %steal  %idle
           0.18    0.00    0.18    0.17    0.00    99.47
# 各磁盘的I/O使用状况
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               1.61         0.07        12.92     415315   77814333
scd0              0.00         0.00         0.00        888          0cpu平均值属性含义
| 参数 | 含义 | 
|---|---|
| %user | CPU在用户态执行进程的时间百分比 | 
| %nice | CPU在用户态模式下,用于nice操作,所占用CPU总时间的百分比 | 
| %system | CPU处在内核态执行进程的时间百分比 | 
| %iowait | CPU用于等待I/O操作占用CPU总时间的百分比 | 
| %steal | 管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU的百分比 | 
| %idle | CPU空闲时间百分比 | 
tips
- 若 %iowait 的值过高,表示硬盘存在I/O瓶颈 ;
- 若 %idle 的值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量;
- 若 %idle 的值持续低于1,则系统的CPU处理能力相对较低,表明系统中最需要解决的资源是 CPU
avg-cpu中各列参数含义如下:
每秒向磁盘设备请求数据的次数,包括读、写请求,为rtps与wtps的和。出于效率考虑,每一次IO下发后并不是立即处理请求,而是将请求合并(merge),这里tps指请求合并后的请求计数。
| 参数 | 含义 | 
|---|---|
| Blk_read/s | 以每秒块数表示从设备读取的数据量 | 
| Blk_wrtn/s | 以每秒块数表示写入设备的数据量 | 
| Blk_read | 取样时间间隔内读扇区总数量 | 
| Blk_wrtn | 取样时间间隔内写扇区总数量 | 
我们可以使用-c选项单独显示avg-cpu部分的结果,使用-d选项单独显示Device部分的信息。
            
            
              bash
              
              
            
          
          iostat interval [count] 指定iostat命令的采样间隔和采样次数
            
            
              bash
              
              
            
          
          ## 每一秒展示一次io信息,一共展示5次
iostat -d 1 5
[root@jobbinqiao shell]# iostat -d 1 5
Linux 3.10.0-1160.11.1.el7.x86_64 (jobbinqiao)  08/21/2023      _x86_64_        (2 CPU)
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               1.61         0.07        12.92     415507   78045401
scd0              0.00         0.00         0.00        888          0
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               2.00         0.00        20.00          0         20
scd0              0.00         0.00         0.00          0          0
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.00         0.00         0.00          0          0
scd0              0.00         0.00         0.00          0          0
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.00         0.00         0.00          0          0
scd0              0.00         0.00         0.00          0          0
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               0.00         0.00         0.00          0          0
scd0              0.00         0.00         0.00          0          0
## 其中可以使用ctrl + c终止以kB为单位显示读写信息(-k选项)/以mB为单位显示读写信息(-m选项)
            
            
              bash
              
              
            
          
          [root@jobbinqiao shell]# iostat -k
Linux 3.10.0-1160.11.1.el7.x86_64 (jobbinqiao)  08/21/2023      _x86_64_        (2 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.18    0.00    0.18    0.17    0.00   99.47
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda               1.61         0.07        12.92     415507   78050297
scd0              0.00         0.00         0.00        888          0为显示更详细的io设备统计信息,可以使用-x选项。
在分析io瓶颈时,一般都会开启-x选项。
            
            
              bash
              
              
            
          
          [root@jobbinqiao ~]# iostat -x
Linux 3.10.0-1160.11.1.el7.x86_64 (jobbinqiao)  08/21/2023      _x86_64_        (2 CPU)
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.18    0.00    0.18    0.17    0.00   99.47
Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
vda               0.00     1.34    0.00    1.61     0.07    12.92    16.14     0.02   12.32    7.97   12.32   2.68   0.43
scd0              0.00     0.00    0.00    0.00     0.00     0.00    16.44     0.00    0.34    0.34    0.00   0.32   0.00