linux基本监控 -iostat

来源:互联网 发布:linux 注释多行 编辑:程序博客网 时间:2024/05/01 07:36
iostat
iostat是I/O statistics(输入/输出统计)的缩写,主要的功能是对系统的磁盘I/O操作进行监视。
同vmstat一样,iostat也不能对某个进程进行深入分析,仅对系统的整体情况进行分析。


安装:yum install sysstat
启动:/etc/init.d/sysstat start 
设置自启动:checkfig sysstat on


iostat属于sysstat包。
Sysstat包有如下工具:
iostat 工具提供CPU使用率及硬盘吞吐效率的数据;
mpstat 工具提供单个处理器或多个处理器相关数据;
sar 工具负责收集、报告并存储系统活跃的信息;
sa1 工具负责收集并存储每天系统动态信息到一个二进制的文件中。它是通过计划任务工具cron来运行,是为sadc所设计的程序前端程序;
sa2 工具负责把每天的系统活跃性息写入总结性的报告中。它是为sar所设计的前端 ,要通过cron来调用
sadc 是系统动态数据收集工具,收集的数据被写一个二进制的文件中,它被用作sar工具的后端;
sadf 显示被sar通过多种格式收集的数据;




语法:
iostat [ -c | -d ] [ -k ] [ -t ] [ -x [ device ] ] [ interval [ count ] ]
  各个选项及参数含义如下:
      -c:显示CPU的使用情况。
      -d:显示磁盘的使用情况。
      -k:每秒以k bytes为单位显示数据。
      -t:打印出统计信息开始执行的时间。
      -x device:指定要统计的磁盘设备名称,默认为所有的磁盘设备(一般要加上,可以获取更详细的信息)
      interval:指定两次统计间隔的时间;
      count: 指定时间间隔统计的次数。


一般使用
iostat -d -k 1 10         #查看TPS和吞吐量信息
iostat -d -x -k 1 10      #查看设备使用率(%util)、响应时间(await)
iostat -c 1 10            #查看cpu状态
 


[root@localhost ~]# iostat -x 1 1
Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.02    19.40  0.25  2.36     4.55   174.11    68.28     0.15   56.65   6.62   1.73
sda1              0.00     0.00  0.00  0.00     0.00     0.00    11.66     0.00   48.37  27.42   0.00
sda2              0.00     0.01  0.00  0.00     0.03     0.05    19.55     0.00   23.81   3.40   0.00
sda3              0.00     0.22  0.01  0.25     0.17     3.79    15.28     0.00   16.48  11.32   0.29
sda4              0.00     0.00  0.00  0.00     0.00     0.00     2.00     0.00   82.00  82.00   0.00
sda5              0.01     0.90  0.07  0.52     1.45    11.32    21.59     0.02   27.59  11.76   0.70
sda6              0.00    16.58  0.03  1.07     0.38   141.22   128.22     0.11   97.33   4.86   0.54
sda7              0.00     0.00  0.00  0.00     0.00     0.00    29.07     0.00    8.38   6.79   0.00
sda8              0.01     1.70  0.14  0.52     2.53    17.73    30.80     0.02   30.51   9.28   0.61


rrqm/s:   这个设备每秒进行merge的读操作数目,当系统调用需要读取的数据时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取相同的Block,FS会将这个请求合并(Merge)
wrqm/s:   每秒进行 merge 的写操作数目
r/s:        每秒发出的读 I/O 设备次数
w/s:        每秒发出的写 I/O 设备次数
rsec/s:   每秒读扇区数
wsec/s: 每秒写扇区数
rkB/s:     每秒读K字节数.是 rsect/s 的一半,因为每扇区大小为512字节.(需要计算)
wkB/s:      每秒写K字节数.是 wsect/s 的一半.(需要计算)
avgrq-sz:   平均每次设备I/O操作的数据大小 (扇区)
avgqu-sz:   平均I/O队列长度.即 delta(aveq)/s/1000 (因为aveq的单位为毫秒).
await:   平均每次I/O操作的时间(毫秒)
svctm:   平均每次I/O操作的服务时间 (毫秒)
%util:     用于I/O操作时间的百分比,100%表示设备已接近满负荷(如果多个磁盘,因为磁盘的并发能力,所以已经到了瓶颈)




-c 参数
获取cpu部分状态值:
[root@localhost ~]# iostat -c 1 1
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.05    0.12    0.45    0.14    0.00   99.23