Procs script
Aller à la navigation
Aller à la recherche
| Fiche express | |
|---|---|
| Domaine | Script de diagnostic — type/fréquence CPU |
| Contexte | AIX |
| Dépend de | lsdev · Lsattr
|
| Voir aussi | Nb cpu script · Rperf script · Machine type script |
procs retourne le type et la fréquence (en Hz) du processeur de la machine. La fréquence brute lue via Lsattr est en Hz ; le script la convertit en MHz avec un arrondi à la centaine près (arrondi bas en dessous de x10, haut au-dessus de x90, arrondi à 50 autour du milieu), ce qui permet ensuite de faire correspondre le résultat aux tables de référence utilisées par Rperf script.
Script
#!/usr/bin/ksh93
if [ "$1" == "-?" ]
then
cat << TEXT
procs retourne le type et la fréquence du processeur
TEXT
exit
fi
# récupération des infos
procstr=`lsdev -Cc processor | head -1 | cut -d' ' -f1`
proctype=`lsattr -El $procstr | awk '/^type/ {print $2}'`
Hz=`lsattr -El ${procstr%% *} -a frequency -F value`
# conversion Hz -> MHz avec arrondi
if [[ ! -z $Hz ]]
then
if (( ($Hz%1000000) >= 500000 ))
then
(( MHz=($Hz/1000000) + 1 ))
else
(( MHz=($Hz/1000000) ))
fi
else
echo "MHz rating is not available, exiting"
exit 2
fi
# arrondi à la centaine pour matcher les tables de référence
dd=${MHz:0:2}
ff=${MHz:2:9}
if (( $ff < 10 ))
then
ff=${ff//[0-9]/0}
elif (( $ff > 90 ))
then
ff=${ff//[0-9]/0}
let dd=$dd+1
elif (( $ff > 40 ))
then
if (( $ff < 60 ))
then
ff=50
fi
fi
roundedMHz=$dd$ff
printf "%s %s hz\n" $proctype $roundedMHz