技术
成就梦想!

批量检查Linux服务器CPU频率脚本

使用背景:

我们在部署服务器基础环境的时候要求服务器关闭节能模式,采用CPU高性能模式,通过tuned-adm profile throughput-performancetuned-adm active将Linux配置为高性能模式,通过cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor检查配置也是采用performance。但是通过cat /proc/cpuinfo |grep -i mhz查看到CPU频率没有跑满CPU基准频率,故还是处于节能模式,如下图。
    这就可能是BIOS设置有问题,比如H3C服务器关闭C状态节能模式,还需要将Monitor/Mwait指令关闭,否则服务器CPU并不能满频率运行,因为服务数量较多需要批量检查,可以通过下面的脚本进行检查。

CPU频率检查

Shell检查脚本:

脚本设置如果CPU频率超过2200Mhz则输出Pass,该值可以根据实际环境修改。

#!/bin/bash
vendor=$(dmidecode -t 1 | grep -Ei "Manufacturer")

if [[ $vendor == *H3C* ]];then
    BMC_IP=$(ipmitool lan print 8 | grep -E "IP\s+Address\s+:" | awk '{print $4}')
else
    BMC_IP=$(ipmitool lan print | grep -E "IP\s+Address\s+:" | awk '{print $4}')
fi

#厂商与型号获取
Vendor_out=$(dmidecode -t 1 | grep -Ei "Manufacturer" |cut -d " " -f 2)
Product=$(dmidecode -t 1 |grep "Product Name" |cut -d ":" -f 2)

#管理地址获取
bond0_net_01=`ls /etc/sysconfig/network-scripts/ifcfg-bond0.* | awk '{print $0}' |sed -n "1p"`
[ -e "$bond0_net_01" ] && bond0_ip=`cat $bond0_net_01  |grep IPADDR |tr -d '\r'|cut -d "=" -f 2`
rm -rf /tmp/CPU_mhz.tmp

sleep 3

until ((i>10))
do
  cat /proc/cpuinfo |grep -i mhz | awk '{print $4}' |cut -d "." -f 1 >> /tmp/CPU_mhz.tmp
  let sum+=i
  let ++i
done
Min_CPU_MHZ=`cat /tmp/CPU_mhz.tmp | awk 'BEGIN {min = 65536} {if ($1+0 < min+0) min=$1} END {print min}'`

#CPU_mhz=`cat /proc/cpuinfo |grep -i mhz | awk '{print $4}' |cut -d "." -f 1`
#获取CPU频率列表
#Min_CPU_MHZ=`echo $CPU_mhz | awk 'BEGIN {min = 65536} {if ($1+0 < min+0) min=$1} END {print min}'`
#获取CPU最小频率

[ "$Min_CPU_MHZ" -ge 2200 ] && Chack_out="\033[32m Pass \033[0m" || Chack_out="\033[31m Fail \033[0m"

echo -e "服务器管理网IP:$bond0_ip IPMI地址:$BMC_IP 厂商:$Vendor_out 型号:$Product CPU最小频率:$Min_CPU_MHZ MHZ 结果:$Chack_out"
CPU频率检查结果
赞(6)
未经允许不得转载:未来往事 » 批量检查Linux服务器CPU频率脚本

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址