使用 SNMP 检索 CPU 空闲、用户和系统、原始信息 32 位计数器

使用 SNMP 检索 CPU 空闲、用户和系统、原始信息 32 位计数器

我正在使用 snmpget 从以下位置检索原始信息:

ssCpuRawIdle.0
ssCpuRawUser.0
ssCpuRawSystem.0

据我所知,它们是 32 位计数器。我还使用 ifOutOctets 和 ifInOctets 检索 60 秒内的网络统计信息,然后运行以下等式:

value_1 = 1st reading before 60 second sleep
value 2 = 2nd reading after 60 second sleep
PERIOD = 60


value_1=$1
value_2=$2

if (($value_2 < $value_1)); then
    value_2=$(($value_2 + 4294967296))
fi
RATE=$( bc <<< "scale=2; ($value_2 - $value_1)/$PERIOD")
VALUE=$( bc <<< "scale=2; $RATE * 8")

我想知道是否有必要使用 CPU 统计数据来执行此操作,如果需要,有人知道计算方法吗?

答案1

答案是通过这种方式,抱歉,我没有意识到我应该说计算百分比。CPU_COUNT 是目标服务器上的 CPU 数量

value_1=$1
value_2=$2
CPU_COUNT=$3

if (($value_2 < $value_1)); then
    value_2=$(($value_2 + 4294967296))
fi
RATE=$( bc <<< "scale=2; ($value_2 - $value_1)/$PERIOD")
VALUE=$( bc <<< "scale=2; $RATE / $CPU_COUNT")

相关内容