如何找到每秒读取量(rd_sec/s)最高的设备?

如何找到每秒读取量(rd_sec/s)最高的设备?

我正在使用 awk 找出每秒读取量(rd_sec/s)最高的设备(来自 SAR 文件),下面是我的命令:

# sar -d -f sa28 | awk '{print $3,$4}' |sort -k1,1n 

输出以排序的方式显示在控制台上,但我想要 rd_sec/s 最高的准确条目。

输出如下:

dev8-0 9.92
dev8-0 9.92
dev8-0 9.93
dev8-0 9.94
dev8-0 9.94
dev8-0 9.96
dev8-0 9.98
dev8-0 9.98
dev8-0 9.98
dev8-0 9.98
dev8-0 9.98
dev8-0 9.99

我怎样才能做到这一点?命令中有什么变化?

答案1

您可以删除该sort命令(并且您不再需要tail):

sar -d -f sa28 | awk '$4 > entries[$3] {entries[$3] = $4} END {for (entry in entries) {print entry, entries[entry]}}'

这将打印每个设备的最高值。

如果你想找到所有条目中最高的一个:

sar -d -f sa28 | awk '$4 > highest {highest = $4; device = $3} END {print device, highest}'

或者

sar -d -f sa28 | awk '{print $3, $4}' | sort -k2,2n | tail -n 1

答案2

您需要将结果输入到“tail -1”中

相关内容