All pastes #488927 Raw Edit

Stuff

public text v1 · immutable
·published 2007-05-15 07:47 UTC
rendered paste body
#!/usr/bin/perl
use strict;
use warnings;
#print $ENV{'PROCESSOR_ARCHITECTURE'};
my $pagesize = 4*1024;
#my $arch=$ENV{'PROCESSOR_ARCHITECTURE'};
#if (my $arch == "IA64")
#{
# my $pagesize = 16*1024;
#}
if ($#ARGV != 0)
{
print "Usage: script <minutes-to-run>\n";
exit 1;
}
my $minutes = $ARGV[0];
printf ("Will run for %d minutes, please wait\n", $minutes);
my @veid = `vzlist -H -o veid`;
chomp( @veid );
my $S = 0;
my @phys_mem;
my $t1=time;
my $t2=$t1+$minutes*60;
my $i;
while (time <= $t2)
{
$i = 0;
foreach my $id (@veid)
{
if ($id > 100)
{
if (! defined($phys_mem[$i]))
{
$phys_mem[$i] = 0;
}
my $out = `vzlist -a -H -o vprvmem $id`;
my @values = split(/\s+/, $out);
my $vprvmem = $values[1];
my $mem = $vprvmem; 
#+ my $physpages * my $pagesize;
if ($phys_mem[$i] < $mem)
{
$phys_mem[$i] = $mem;
}
$i = $i + 1;
}
}
sleep(1);
}
printf("----------------------------------- \n" );
# calculate S as sum of phys_mem values
$i = 0;
foreach my $id (@veid)
{
if ($id > 100)	
{
$S = $S + $phys_mem[$i];
$i = $i + 1;
}
}
$i=0;
print "VEID\tPHYSICAL MEMORY\tUSE SHARE\n";
foreach my $id (@veid)
{
if ($id > 100)
{
#printf( "\$phys_mem[\$i] = $phys_mem[$i], \$S = $S\n" );
my $p = $phys_mem[$i] * 100/ $S;
printf("%-5d\t%-5.2f %s\t%-5.2f %%\n", $id,$phys_mem[$i],"Mb",$p);
$i = $i + 1;
}
}