pt工具的使用(3)--pt-diskstats的使用

pt-diskstats主要用来监控磁盘

首先查看一下都有什么参数

pt-diskstats --help

 --columns-regex=s    Print columns that match this Perl regex (default .)          打印与此Perl正则表达式匹配的列(默认值。)
  --config=A           Read this comma-separated list of config files; if specified, this must be the first option on the command  line

                            阅读这个以逗号分隔的配置文件列表; 如果指定,则必须是命令行上的第一个选项
  --devices-regex=s    Print devices that match this Perl regex     打印与此Perl正则表达式匹配的设备
  --group-by=s         Group-by mode: disk, sample, or all (default all)    分组模式:磁盘,样本或全部(默认全部)
  --headers=H          If group is present, each sample will be separated by a blank line, unless the sample is only one line (default group,scroll)   如果存在组,则每个样本将用空行分隔,除非样本只有一行(默认组,滚动)
  --help               Show help and exit
  --interval=i         When in interactive mode, wait N seconds before printing to the screen (default 1) 

                              在交互模式下,在打印到屏幕前等待N秒(默认为1)
  --iterations=i       When in interactive mode, stop after N samples   在交互模式下,在N个样本后停止
  --sample-time=i      In --group-by sample mode, include N seconds of samples per group (default 1)

                                 在分组样本模式下,每组包含N秒样本(默认值为1)
  --save-samples=s     File to save diskstats samples in; these can be used for later analysis 

                                   用于保存diskstats样本的文件; 这些可以用于以后的分析
  --show-inactive      Show inactive devices  显示非活动设备
  --show-timestamps    Show a 'HH:MM:SS' timestamp in the #ts column  在#ts列中显示“HH:MM:SS”时间戳

  --version            Show version and exit
  --[no]version-check  Check for the latest version of Percona Toolkit, MySQL,and other programs (default yes)

检查最新版本的Percona Toolkit,MySQL,和其他程序(默认是)

pt-diskstats实质上是对/proc/diskstats做snapshot(快照),然后进行相关计算后输出。那么/proc/diskstats又是什么东东呢。我们来捣鼓捣鼓 /proc/diskstats吧,随意取一份主机上的 /proc/diskstats文件下来。

pt工具的使用(3)--pt-diskstats的使用_第1张图片

 

以第一行为例,上面这串字符从左往右依次表示:

8:主设备号,不同类别设备编号不一样,磁盘统一为8

0:次设备号,比如sda的sda为0,sda1位1,sda2为2.也就是一个物理磁盘后面的分区,编号依次递增

sda:设备名。一般ide接口的以hd[a-d]口命名,scsi和sata接口的以sd[a-z]命名。

下面的十一项解释如下:

Name            units         description
----            -----         -----------
read I/Os       requests      完成的读请求次数
read merges     requests      在IO队列中合并的IO次数,对于机械盘来讲,IO合并对性能帮助太大了,
                              innodb设计中change buffer,double write都有IO合并的影子在里面
read sectors    sectors       读取过的扇区数
read ticks      milliseconds  读取耗费的总时间
write I/Os      requests      完成的写次数
write merges    requests      合并的写次数,write merges/(write I/Os)越大,对IO子系统帮助越大
write sectors   sectors       写入的扇区数
write ticks     milliseconds  写操作耗费的总时间
in_flight       requests      当前的IO请求数
io_ticks        milliseconds  该设备花在实际IO操作上的时间 
time_in_queue   milliseconds  IO请求在该设备上锁耗费的所有时间

 pt-diskstats可以工作在两种模式下,第一是工作在交互模式下,该模式下我们可以动态控制pt-diskstats的输出,立刻看到结果,第二种是先收集/proc/diskstats的信息,存到一个文件里面,采集一段时候后再通过pt-diskstats来计算。

这种模式下无人值守,用一个脚本在后台定时采集/proc/diskstats,采集完后我们用工具分析最终结果好了,最后我们可以得出该段时间内的整体IO性能,而不是瞬间的性能指标。

#ts:如果按照disk聚合,该值代表到run的总时间,如果按照sample聚合,该值也代表当前run的时间,如果按照all聚合,代表两个快照间时间间隔。关于聚合,后面解释。
device:设备名
rd_s:实际发送到物理设备的读请求次数,该值一般情况下比实际应用请求次数小,因为在IO队列中,很多IO都被合并掉了。
rd_avkb:平均每次读请求的字节,单位KB/s,也就是单词次读数据量
rd_mb_s:该设备上的读取带宽,单位MB/s。ps:rd_s*rd_avkb=rd_mb_s
rd_mrg:被合并的读请求数占总的读请求数的百分比,越高越好
rd_cnc:读请求并发性
rd_rt:读请求平均响应时间
wr_s, wr_avkb, wr_mb_s, wr_mrg, wr_cnc, wr_rt和读请求一样,不赘述
busy:人们习惯称为设备的繁忙程度,暂且这么理解吧
in_prg:当前正在向底层物流设备提交的IO请求数目,如果该值不为0或者很大,那么你的设备负载很重
io_s:IOPS。ps:rd_s+wr_s=ios_s
qtime:IO请求排队时间(IO请求实际发到物理设备前有个排队过程)
stime:物理设备实际做物理读写所耗费的时间

首先演示在交互模式下的输出

(1)不加任何参数:

pt工具的使用(3)--pt-diskstats的使用_第2张图片

如上图演示,每个字段的意义上面已经介绍

(2)正则对应的字段

pt工具的使用(3)--pt-diskstats的使用_第3张图片

 

(3)正则对应的设备 

pt工具的使用(3)--pt-diskstats的使用_第4张图片 

 (4)规定打印到屏幕前等待的时间

pt工具的使用(3)--pt-diskstats的使用_第5张图片

 (5)样本概念不太清楚,之后研究懂了再补充(研究了一下没太懂,有知道的大佬请指点指点)

(6)以样本分组的模式下每秒包含n组样本 (要以样本分组模式,不然该参数无效)

(7)显示时间 

pt工具的使用(3)--pt-diskstats的使用_第6张图片

 交互模式下按?即可查看帮助文档,出现如下提示

pt工具的使用(3)--pt-diskstats的使用_第7张图片

A:每个snapshot每个磁盘设备一行

D:每个磁盘一行

S:一个snapshot只输出一行,所有设备聚合在一起

c:查看某列,比如要查看IOPS。按下c,然后输入ios_s。

/:查看某系列磁盘,例如某些服务器有二三十块磁盘,查看sdf-sdg,只需按下/,然后输入sd[f-g]

z:聚合时间步长,假如5,就表示,1~5,2~6,3~7这样没五秒聚合一次
i:隐藏没有IO活动的设备
p:暂停
q:退出
space:回车是输出表头

 另一种做法是先收集后分析

收集的脚本

pt工具的使用(3)--pt-diskstats的使用_第8张图片

借鉴大神的文章:http://www.fordba.com/percona-toolkit-pt-diskstats.html 

你可能感兴趣的:(mysql)