Skript zur Auswertung der UBC

Das folgende Skript liefert für jeden UBC-Parameter/VE den Wert: maxheld/limmit. Man sieht so, welche Resourcen von welcher VE am stärksten in Anspruch genommen werden. Gut zu erkennen ist das in folgendem ODS-Diagram (Skriptausgabe Copy/Paste ins Openoffice):

VE-Parameters.ods

 

#!/usr/bin/perl

$params=`vzsplit -n 20`;
@lines=split(/\n/,$params);
foreach(@lines) {
        next if(/^#/);
        @cols=split(/[":=]/);
        foreach(@cols) {
                $barrier{lc($cols[0])}=$cols[2];
                $limmit{lc($cols[0])}=$cols[3];
        }       
}

$ubc=`cat /proc/user_beancounters`;
@lines=split(/\n/,$ubc);
foreach(@lines) {
        next if(/^Version/);
        next if(/^       uid/);
        @cols=split(/\s+/);
        $num=@cols;
        if($num==8) {
                $uid=$cols[1];
                $uid=~s/://g;
                shift(@cols);
        }
        next if($uid=="0");
    next if($barrier{$cols[1]}==0);

    $uids{$uid}=$uid;

    $heldX{$cols[1].$uid}=$cols[2];
    $maxheldX{$cols[1].$uid}=$cols[3];
    $barrierX{$cols[1].$uid}=$cols[4];
    $limmitX{$cols[1].$uid}=$cols[5];

}

print "\t";
foreach(keys(%uids)) {
    print;
    print "\t";
}
print "\n";

foreach(keys(%barrier)) {
    $param=$_;

    next if($limmit{$param}==0);

    print $param;
    print "\t";
    foreach(keys(%uids)) {
        $uid=$_;
        print $maxheldX{$param.$uid}/$limmit{$param};
        print "\t";
    }
    print "\n";
}

Leave a comment

Your email address will not be published. Required fields are marked *

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