「ioping」-

实时监控磁盘的I/O延迟。ioping的主要思想是类似于ping命令,它以显示网络延迟相同的方式来显示磁盘I/O延迟。

命令行语法格式

ioping [-LABCDWRkq] [-c count] [-w deadline] [-p period] [-P period] [-i interval] [-s size] [-S wsize]

[-o offset] directory|file|device

ioping -h | -v

命令支持的选项及含义

-c count
ping执行的次数。

-w deadline
指定执行的时间。默认以秒为单位,有关单位的介绍查看下面的“Argument suffixes”部分。

-p period
period个请求,打印一次原始统计信息。

-P period
每隔period秒,打印一次原始统计信息。

-i interval
两次ping请求之间间隔的秒数。默认为1秒。

-s size
每个请求的大小。默认为4k。

-S size
Working Set的大小(目录为1m。对于文件或者设备是完整的大小。)

-o offset
文件或者设备的起始偏移量。默认为0。

-k
保留在工作目录中生成的ioping.tmp文件。

-L
使用顺序操作代替默认的随机操作。同时将请求的大小设置为256k(-s 256k)。

-A
使用异步IO。(系统调用io_submit(2), io_submit(2)等)

-C
使用缓存的IO(使用posix_fadvise(2)抑制缓存无效)

-D
使用直接IO(参见手册open(2)中的O_DIRECT)

-W
使用来代替。对于以目录为目标的操作是安全的。
注意:对于文件/设备,会使数据碎片化。这种情况下,应才重复三次(-WWW)。

-R
磁盘寻道速率测试,等价于-q -i 0 -w 3 -S 64m。如果磁盘的缓存非常大,应该相应增加Working Set(-S)。

-B
批处理模式。只输出原始格式的最后统计。

-q
抑制定期的可读性输出。

-h / -v
显示帮助与版本信息。

参数后缀(Argument suffixes)

“时间”为参数的选项,比如:-i, -P, -w。默认的单位为秒,也可以使用以下单位作为后缀(大小写不敏感):

us, usec
microseconds (a millionth of a second, 1 / 1 000 000)

ms, msec
milliseconds (a thousandth of a second, 1 / 1 000)

s, sec
seconds

m, min
minutes

h, hour
hours

“尺寸”为单位的选项,比如:-s, -S, -o,默认单位为字节,也可以使用以下单位作为后缀(大小写不敏感):

sector
disk sectors (a sector is always 512).

KiB, k, kb
kilobytes (1024 bytes)

page
memory pages (a page is always 4KiB).

MiB, m, mb
megabytes (1 048 576 bytes)

GiB, g, gb
gigabytes (1 073 741 824 bytes)

TiB, t, tb
terabytes (1 099 511 627 776 bytes)

“数值”为单位的选项,比如:-p, -c,可以使用以下单位作为后缀(大小写不敏感):

k kilo (thousands, 1 000)

m mega (millions, 1 000 000)

g giga (billions, 1 000 000 000)

t tera (trillions, 1 000 000 000 000)

命令退出码

返回0表示成功。

以下是错误码
1:参数错误。
2:准备阶段发生错误。
3:运行时错误。

原始统计中输出列的含义(RAW STATISTICS)

ioping -p 100 -c 200 -i 0 -q .
100 26694 3746 15344272 188 267 1923 228
100 24165 4138 16950134 190 242 2348 214
(1) (2) (3) (4) (5) (6) (7) (8)

(1) 请求数量
(2) 服务时间(usec)
(3) 每秒请求数(iops)
(4) 传输速率(bytes/sec)
(5) 最小请求时间(usec)
(6) 平均请求时间(usec)
(7) 最大请求时间(usec)
(8) 请求时间标准差(usec)

简单实例

ioping .
使用默认的参数设置,显示当前目录磁盘的IO延迟。

ioping -c 10 -s 1M /tmp
发送10个请求,每个请求的大小为10M,用于测量/tmp的延迟。

ioping -R /dev/sda
测量磁盘寻道速度。

ioping -RL /dev/sda
测量磁盘顺序读写速度。

ioping -RLB . | awk ‘{print $4}’
获取磁盘顺序读写速度。单位:字节每秒。

相关手册

iostat(1), dd(1), fio(1), dbench(1), fsstress, xfstests, hdparm(8), badblocks(8),

参考文献