将 MAJ:MIN – 设备号转换为真实磁盘名称

将 MAJ:MIN – 设备号转换为真实磁盘名称

从 saX 文件上的 sar 命令我们可以获得磁盘利用率,如下所示

sar -d -f /var/log/sa/sa18  | grep Average
Average:       dev8-0      1.24      0.00    150.06    121.40      0.04     30.40      4.72      0.58
Average:     dev253-0      0.32      0.00      3.75     11.83      0.01     17.95      3.48      0.11
Average:     dev253-1      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:     dev253-2      1.12      0.00    146.31    130.68      0.04     31.79      4.46      0.50
Average:      dev8-16      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      dev8-32      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      dev8-48      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:     dev253-3      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

我们可以看到定义为 MAJ:MIN 的磁盘为( dev8-16 、 dev8-48 等)

是否可以获得真实的磁盘名称,如 sdb 、 sdc sdc 等?使用sarCLI ( sar -d -f /var/log/sa/sa18 | grep Average)

答案1

该文档man sar告诉您如何获取以下名称的查找sar -d

-d报告每个块设备的活动。显示数据时,设备名称将按其(应该)出现在 中的方式显示/devsar使用数据/sys根据主设备号和次设备号确定设备名称。如果此名称解析失败,sar将使用由/etc/sysstat/sysstat.ioconf文件控制的名称映射。如果-j使用选项,也可以打印持久设备名称[...]

总之,

  1. 它应该已经发生了
  2. 如果没有,您可以将它们添加到/etc/sysstat/sysstat.ioconf
  3. 您可能更喜欢使用其中一种-j {option}选项,例如LABEL.

我最近在我的 Pi 上启用了系统记帐。显然,统计运行并不重要,但我已经可以看到在这台机器上磁盘名称正确显示:

sar -d -f /var/log/sysstat/sa18
Linux 4.9.35-v7+ (pi)   18/01/23        _armv7l_        (4 CPU)

12:16:05     LINUX RESTART      (4 CPU)

12:40:01          DEV       tps     rkB/s     wkB/s     dkB/s   areq-sz    aqu-sz     await     %util
12:42:08      mmcblk0      3.37     14.35     19.58      0.00     10.06      0.08     23.15      0.58
12:42:08         dm-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:      mmcblk0      3.37     14.35     19.58      0.00     10.06      0.08     23.15      0.58
Average:         dm-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

我想知道您是否已将sa*文件复制到不同的服务器进行分析?在这种情况下,您可能确实需要编辑sysstat.ioconf来命名它们。

答案2

尝试这个:

#! /bin/bash

devrez()
{
    l=/sys/dev/block/`echo "$1" | sed 's/dev//g;s/-/:/g'`
    test ! -L "$l" && echo "[$1] not found" && return -1
    readlink -f "$l" | awk -F / '{ORS="";print "\t"$NF}'
}

export -f devrez

sar -d -f /var/log/sa/sa18 | awk '{OFS="\t";ORS="";print $1; system("/bin/bash -c '\''devrez "$2"'\''");$1="";$2="";print "";print;print "\n"}'

相关内容