42

Answer to Life, the Universe, and the IT

physc- und entc-Werte unter ‘RHEL for Power’

| 0 comments

physc- und entc-Werte unter ‘RHEL for Power’

Anscheinend gibt es mit dem lparstat Kommando mit meinen Systemen und RHEL for Power ein kleines Problem, jedenfalls sind die physc sowie entc Werte immer 0. Daraufhin habe ich ein kleine Shellscript gebaut welches mir die Werte aus /proc/ppc64/lparcfg und dem darin enthaltenen PURR-Wert berechnen.

#!/bin/bash
# Power CPU Utilization -> pcu
# math behind: physc=((P2-P1)/TIMEBASE)/DELTA

if [ $# -eq 2 ]
then
        DELTA=$1
        CYCLE=$2
else
        echo "Usage: pcu.sh  "
        echo "  print entc in % and physc in cores of the LPAR."
        exit 0
fi

if [ -f /proc/ppc64/lparcfg ]
then

  count=1
  while [ $count -le $CYCLE ]
  do

    # get entitled capacity
    ENT=1
    ENT=$(lparstat -i|grep -v Pool |grep 'Entitled Capacity'|cut -d: -f2|cut -d' ' -f2)

    # get P1
    P1=$(cat /proc/ppc64/lparcfg | grep purr | sed 's/^purr=//')
    # sleep
    sleep $DELTA
    # get P2
    P2=$(cat /proc/ppc64/lparcfg | grep purr | sed 's/^purr=//')
    # get TIMEBASE
    TIMEBASE=$(cat /proc/cpuinfo | awk '/timebase/ { print $3 }')

    # calculate entc and physc
    PHYSC=$(echo "scale=3;($P2-$P1)/$TIMEBASE/$DELTA" | bc)
    ENTC=$(echo "scale=3;($PHYSC*100)/$ENT" | bc)

    echo "physc: $PHYSC"
    echo "entc: $ENTC"

    # loop count
    (( count=$count+1 ))
  done

else

  print "Sorry no IBM POWER System."
fi
exit 0

Die Ausgabe sind dann für für ein 2 sec Mittel und einem Durchlauf ungefähr so aus.

./pcu.sh 2 1
physc: .028
entc: 2.800

Das ganze habe ich dann noch mit folgendem Snippet in unser Zabbix eingebunden.

UserParameter=custom.rhelpower.cpu.physc.used,/usr/local/bin/pcu.sh 2 1|grep physc|cut -d: -f2
UserParameter=custom.rhelpower.cpu.entc.used,/usr/local/bin/pcu.sh 2 1|grep entc|cut -d: -f2

Und schon bekommt man schöne Graphen über die tatsächliche CPU-Nutzung einer RHEL LPAR.

Leave a Reply

Required fields are marked *.


This site uses Akismet to reduce spam. Learn how your comment data is processed.