我正在使用 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")