工具简介
`pt-diskstats`
usage: pt-diskstats [OPTIONS] [FILES]
1.输出系统磁盘相关的信息。
有点类似于`iostat`命令,不过它比`iostat`输出的更加详细一点
官方文档:
https://www.percona.com/doc/percona-toolkit/LATEST/pt-diskstats.html
常用参数
--iterations=i 输出多少次示例
--interval=i 每次输出示例间隔多少s
--devices-regex 指定查看哪个设备的io信息,比如sda,sdb之类的
--show-timestamps 显示具体的时间戳
使用示例
`iostat结果`
$ iostat -dxk 1 5
Linux 3.10.0-1160.31.1.el7.x86_64 (booyah_centerdb_m) 2022年03月19日 _x86_64_ (4 CPU)
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdb 0.00 0.75 0.00 0.82 0.05 12.32 30.14 0.00 0.74 5.00 0.74 0.69 0.06
sda 0.00 0.03 0.00 0.61 0.12 5.30 17.69 0.00 7.71 20.68 7.64 2.64 0.16
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdb 0.00 11.00 0.00 8.00 0.00 160.00 40.00 0.00 0.25 0.00 0.25 0.62 0.50
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
` pt-diskstats 结果`
$ pt-diskstats --interval=1 --iterations=10 --devices-regex=sdb --show-timestamps
#ts device 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_s qtime stime
20:45:53 sdb 0.0 0.0 0.0 0% 0.0 0.0 0.0 0.0 0.0 0% 0.0 0.0 0% 0 0.0 0.0 0.0
20:45:54 sdb 0.0 0.0 0.0 0% 0.0 0.0 0.0 0.0 0.0 0% 0.0 0.0 0% 0 0.0 0.0 0.0
20:45:54 sdb 0.0 0.0 0.0 0% 0.0 0.0 0.0 0.0 0.0 0% 0.0 0.0 0% 0 0.0 0.0 0.0
20:45:55 sdb 0.0 0.0 0.0 0% 0.0 0.0 0.0 0.0 0.0 0% 0.0 0.0 0% 0 0.0 0.0 0.0
20:45:56 sdb 0.0 0.0 0.0 0% 0.0 0.0 2.0 0.0 0.0 0% 0.0 0.0 0% 0 2.0 -1.0 1.0
20:45:57 sdb 0.0 0.0 0.0 0% 0.0 0.0 0.0 0.0 0.0 0% 0.0 0.0 0% 0 0.0 0.0 0.0
20:45:58 sdb 0.0 0.0 0.0 0% 0.0 0.0 0.0 0.0 0.0 0% 0.0 0.0 0% 0 0.0 0.0 0.0
20:45:59 sdb 0.0 0.0 0.0 0% 0.0 0.0 0.0 0.0 0.0 0% 0.0 0.0 0% 0 0.0 0.0 0.0
20:46:00 sdb 0.0 0.0 0.0 0% 0.0 0.0 0.0 0.0 0.0 0% 0.0 0.0 0% 0 0.0 0.0 0.0
20:46:01 sdb 0.0 0.0 0.0 0% 0.0 0.0 8.0 20.0 0.2 58% 0.0 0.3 1% 0 8.0 0.0 0.3
接下来和大家解释一下输出的内容含义
ts 操作的时间戳
device 磁盘设备名称,sda之类的
rd_s 每秒平均读取次数
rd_avkb 平均读取大小,单位kb
rd_mb_s 每秒读取的平均兆字节数,单位mb
rd_mrg 发送到物理设备之前,在队列调度程序中合并在一起的读取请求的百分比
rd_cnc 读取操作的平均并发量
rd_rt 读取操作的平均响应时间,单位ms
wr_s 每秒平均写入次数
wr_avkb 平均写入大小,单位kb
wr_mb_s 每秒平均写入的平均大小,单位mb
wr_mrg 发送到物理设备之前,在队列调度程序中合并在一起的写入请求的百分比
wr_cnc 写入操作的平均病发量
wr_rt 写入操作的平均相应时间,单位ms
busy 磁盘繁忙程度,类似于iostat的%util
in_prg 当前的请求数量
ios_s 物理设备的平均吞吐量,单位iops
qtime 请求平均排队时间
stime 平均服务时间
最后
其实查看磁盘问题iostat
和pt-diskstats
都可以帮我们解决问题,大家可以根据自己的使用习惯去使用,我个人更偏向于pt工具,因为pt工具本身就是帮我们解决数据库问题而设计出来的。