如何在Linux中获得总读写IOPS?


32

如何在Linux中使用命令行或以编程方式分别读写IOPS?我已经安装了sysstat软件包。

请告诉我如何使用sysstat打包命令分别计算这些值。

或者,是否可以使用文件系统来计算它们?

例如: /proc/sys/dev

Answers:


46

iostatsysstat程序包的一部分,可以根据需要显示总体iops,也可以将它们与读/写分开。

iostat使用-d标志运行以仅显示设备信息页面,使用-x运行以获取详细信息(单独的读/写统计信息)。您可以通过稍后在命令行上简单添加来指定所需信息的设备。

尝试运行iostat -dx并查看摘要以了解输出。您还可以iostat -dx 1用来显示不断刷新的输出,这对于故障排除或实时监控非常有用,

使用awk,第4栏将为您提供每秒的读取次数,而第5栏将为您提供每秒的写入次数

每秒读数:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4; }'

仅写入/秒:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $5; }'

读/秒和写/秒用斜杠分隔:

iostat -dx <your disk name> | grep <your disk name> | awk '{ print $4"/"$5; }'

总体IOPS(大多数人都在谈论):

iostat -d <your disk name> | grep <your disk name> | awk '{ print $2; }'

例如,使用我的主驱动器/ dev / sda运行最后一个命令,如下所示:

dan@daneel ~ $ iostat -dx sda | grep sda | awk '{ print $4"/"$5; }' 15.59/2.70

请注意,您也不需要root用户即可运行它,这使其对非特权用户有用。

TL; DR:如果您只是感兴趣sda,下面的命令将为您提供总体IOPS sda

iostat -d sda | grep sda | awk '{ print $2; }'

如果要在所有设备上添加IOPS ,则可以再次使用awk:

iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}'

这样产生的输出如下:

dan@daneel ~ $ iostat -d | tail -n +4 | head -n -1 | awk '{s+=$2} END {print s}' 18.88


谢谢Dannel先生的帮助。如果我想获得完整的系统读/写IOPS,如何获得?
shas 2015年

当我跑iostat -dx 1我得到ANS这样Linux 2.6.35.14-106.fc14.i686 (shashi) 08/24/2015 _i686_ (2 CPU) Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %util sda 2.46 13.80 2.27 2.03 136.26 123.91 60.53 0.11 25.77 4.43 1.91 dm-0 0.00 0.00 2.35 0.77 93.07 6.11 31.86 0.17 53.73 2.59 0.81 dm-1 0.00 0.00 1.02 2.83 8.14 22.66 8.00 0.83 214.34 0.60 0.23 dm-2 0.00 0.00 1.37 11.89 34.77 95.14 9.80 1.67 126.06 0.84 1.11的DM-0,DM-1,DM-2递归,我应该补充的吗?
shas 2015年

我已经使用整体模板和的示例更新了答案sda。如果您只是想查看硬盘驱动器的IOPS,请使用最后一个命令查看整体IOPS(iostat -d sda | grep sda | awk '{ print $2; }'
Daneel

不,我想像你在第一个答案中提到的那样。有位混淆dm-*,所以我问,我需要对这些分区执行加法
的SHA

嗯好 您可以使用以下命令来检查每个dm-x设备是什么:lvdisplay|awk '/LV Name/{n=$3} /Block device/{d=$3; sub(".*:","dm-",d); print d,n;}'-我将以此来更新答案,以及如何添加结果。
Daneel
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.