ioping 命令详解

| 选择喜欢的代码风格  

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

ioping 命令安装:


-bash: ioping: command not found

#Debian
apt-get install ioping

#Ubuntu
apt-get install ioping

#Arch Linux
pacman -S ioping

#Kali Linux
apt-get install ioping

#CentOS
yum install ioping

#Fedora
dnf install ioping

#Raspbian
apt-get install ioping

#Docker
docker run cmd.cat/ioping ioping

ioping 命令补充说明:


ioping 命令是一个实时显示磁盘 io 延时的工具,以类似 ping 的输出一样展示输出结果

ioping 命令语法:


ioping [-ABCDRLWYykq] [-c count] [-i interval] [-s size] [-S wsize]
       [-o offset] [-w deadline] [-pP period] directory|file|device
ioping -h | -v

ioping 命令选项:


-c count       计数请求 后停止。
-i interval    将两次请求之间的时间间隔设置为(1s)。
-l speed       集速度极限以每秒字节数。将间隔设置为请求大小/速度。
-t time        最小有效请求时间(0us)。统计信息中忽略了太快的请求。
-T time        最大有效请求时间。统计信息中忽略太慢的请求。
-s size        要求大小(4k)。
-S wsize       工作集大小(目录为1m,文件或设备为整个大小)。
-o offset      文件/设备中的起始偏移量(0)。
-w deadline    在截止时间之后停止。
-p period      打印每个期间请求的原始统计信息(请参见下面的格式)。
-P period      打印每个时间段的原始统计信息。
-A             使用异步I/O(系统调用io_submit(2),io_submit(2)等)。
-B             批处理模式。保持安静,并以原始格式打印最终统计信息。
-C             使用缓存的I/O。在读取之前通过posix_fadvise(2))抑制高速缓存失效,在每次写入之后通过fdatasync(2)抑制高速缓存无效。
-D             使用直接I/O(见O_DIRECT在开放式(2))。
-L             使用顺序操作,而不是随机操作。这还将默认请求大小设置为256k(如-s 256k所示)。
-R             磁盘搜寻率测试。此选项禁止显示每个请求的人类可读输出(作为-q),将默认间隔设置为零(-i 0),在3秒后停止测量(-w 3),并将默认工作集大小增加到64m(-S 64m) 。如果磁盘具有巨大的高速缓存,则应相应地增加工作集(-S)。
-W             使用写而不是读。对目录目标而言是安全的。对于不支持或未缓存非缓存读取的系统,写入I/O可以提供更可靠的结果。对于文件/设备可能是“ 危险”的:它将粉碎您的数据。在这种情况下,应重复树时间(-WWW)。
-G             备用读写请求。
-Y             使用同步I/O(见O_SYNC在开放式(2))。
-y             使用数据同步I/O(见O_DSYNC在开放式(2))。
-k             保留并重新使用临时工作文件“ ioping.tmp”(仅用于目录目标)。
-q             禁止人类可读的定期输出。
-H             显示帮助消息并退出。
-v             显示版本并退出。

ioping 命令参数:


需要测试的挂载盘

ioping 命令实例


使用 10 个每个 1MB 的请求来测量 /tmp 上的延迟:

$ ioping -c 10 -s 1M /tmp

1 MiB <<< /tmp (ext4 /dev/vda1): request=1 time=4.94 ms (warmup)
1 MiB <<< /tmp (ext4 /dev/vda1): request=2 time=3.44 ms
1 MiB <<< /tmp (ext4 /dev/vda1): request=3 time=3.40 ms
1 MiB <<< /tmp (ext4 /dev/vda1): request=4 time=3.40 ms
1 MiB <<< /tmp (ext4 /dev/vda1): request=5 time=3.44 ms
1 MiB <<< /tmp (ext4 /dev/vda1): request=6 time=3.39 ms
1 MiB <<< /tmp (ext4 /dev/vda1): request=7 time=3.44 ms (slow)
1 MiB <<< /tmp (ext4 /dev/vda1): request=8 time=3.52 ms (slow)
1 MiB <<< /tmp (ext4 /dev/vda1): request=9 time=3.44 ms
1 MiB <<< /tmp (ext4 /dev/vda1): request=10 time=3.43 ms

--- /tmp (ext4 /dev/vda1) ioping statistics ---
9 requests completed in 30.9 ms, 9 MiB read, 291 iops, 291.3 MiB/s
generated 10 requests in 9.00 s, 10 MiB, 1 iops, 1.11 MiB/s
min/avg/max/mdev = 3.39 ms / 3.43 ms / 3.52 ms / 34.9 us

测量 /Data 上的磁盘查找率:

$ ioping -R /Data

--- /Data (xfs /dev/vdb1) ioping statistics ---
5.60 k requests completed in 2.98 s, 21.9 MiB read, 1.88 k iops, 7.33 MiB/s
generated 5.60 k requests in 3.00 s, 21.9 MiB, 1.87 k iops, 7.29 MiB/s
min/avg/max/mdev = 50.6 us / 532.9 us / 59.6 ms / 942.2 us

/Data 上测量磁盘顺序速度:

$ ioping -RL /Data

--- /Data (xfs /dev/vdb1) ioping statistics ---
1.53 k requests completed in 2.96 s, 382.2 MiB read, 516 iops, 129.2 MiB/s
generated 1.53 k requests in 3.00 s, 382.5 MiB, 509 iops, 127.4 MiB/s
min/avg/max/mdev = 501.8 us / 1.93 ms / 12.9 ms / 586.0 us

raw 统计

$ ioping -p 100 -c 200 -i 0 -q .

99 18680626 5300 21707195 49545 188693 4625261 633745 100 19173173
100 8265416 12099 49555884 49219 82654 282376 69927 100 8452598
(1)   (2)    (3)    (4)     (5)   (6)    (7)   (8)  (9)  (10)

------------------
(1) 请求次数统计
(2) 运行时间         (usec)
(3) 每秒的请求次数  (iops)
(4) 传输速度       (bytes/sec)
(5) 最低的请求时长 (usec)
(6) 平均请求时长 (usec)
(7) 最大的请求时长 (usec)
(8) request time standard deviation (usec)
(9) 总的请求数       (including too slow and too fast)
(10) 总的运行时长  (usec)

名词解释:
tps: 每秒接收的I/O请求数,等于r/s + w/s
avgrq-sz: 平均每次io请求扇区数
avgqu-sz: 平均每次io等待队列数
maxsect: max sectors per request
通过blockdev --getmaxsect /dev/sdx获取,sas默认值512,sata默认值128
sector: 扇区,每个扇区512Bytes,1k=2sect
iops: 每秒的io次数

ioping 命令扩展阅读:




ioping 命令评论

共收录到 500Linux 命令