[padb-devel] [padb commit] r96 - Add user and cpu time (as percentages) to the information gathered
codesite-noreply at google.com
codesite-noreply at google.com
Thu Jul 9 02:08:10 BST 2009
Author: apittman
Date: Wed Jul 8 18:01:48 2009
New Revision: 96
Modified:
branches/full-duplex/src/padb
Log:
Add user and cpu time (as percentages) to the information gathered
from /proc.
Modified: branches/full-duplex/src/padb
==============================================================================
--- branches/full-duplex/src/padb (original)
+++ branches/full-duplex/src/padb Wed Jul 8 18:01:48 2009
@@ -5500,14 +5500,31 @@
return ( ( string_to_jiffies($pre) + string_to_jiffies($post) ) / 2 );
}
-# Convert /proc/self/stat into used jiffies.
-sub stat_to_jiffies {
- my $stat = shift;
- my @values = split( " ", $stat );
- my $jiffies = 0;
- $jiffies += $values[13]; # utime
- $jiffies += $values[14]; # stime
- return $jiffies;
+sub pcpu_user {
+ my ( $cpucount, $elapsed, $start, $end ) = @_;
+ my @pre = split( " ", $start );
+ my @post = split( " ", $end );
+ my $jused = $post[13] - $pre[13];
+ my $used = ( $jused / $elapsed ) * $cpucount * 100;
+ return sprintf( "%d", $used );
+}
+
+sub pcpu_sys {
+ my ( $cpucount, $elapsed, $start, $end ) = @_;
+ my @pre = split( " ", $start );
+ my @post = split( " ", $end );
+ my $jused = $post[14] - $pre[14];
+ my $used = ( $jused / $elapsed ) * $cpucount * 100;
+ return sprintf( "%d", $used );
+}
+
+sub pcpu_total {
+ my ( $cpucount, $elapsed, $start, $end ) = @_;
+ my @pre = split( " ", $start );
+ my @post = split( " ", $end );
+ my $jused = $post[13] - $pre[13] + $post[14] - $pre[14];
+ my $used = ( $jused / $elapsed ) * $cpucount * 100;
+ return sprintf( "%d", $used );
}
my $proc_info;
@@ -5613,14 +5630,29 @@
my ( $l1, $l5, $l15 ) = split( " ", $load_avg );
foreach my $proc ( @{$list} ) {
- my $vp = $proc->{vp};
- my $jpre = stat_to_jiffies( $proc->{stat_start} );
- my $jpost = stat_to_jiffies( $proc->{stat_end} );
- my $jused = $jpost - $jpre;
- my $used = ( $jused / $elapsed ) * $cpucount * 100;
- my $used_str = sprintf( "%d", $used );
+ my $vp = $proc->{vp};
- proc_output( $vp, "pcpu", $used_str );
+ proc_output(
+ $vp, "pcpu",
+ pcpu_total(
+ $cpucount, $elapsed,
+ $proc->{stat_start}, $proc->{stat_end}
+ )
+ );
+ proc_output(
+ $vp, "pucpu",
+ pcpu_user(
+ $cpucount, $elapsed,
+ $proc->{stat_start}, $proc->{stat_end}
+ )
+ );
+ proc_output(
+ $vp, "pscpu",
+ pcpu_sys(
+ $cpucount, $elapsed,
+ $proc->{stat_start}, $proc->{stat_end}
+ )
+ );
proc_output( $vp, "load1", $l1 );
proc_output( $vp, "load5", $l15 );
proc_output( $vp, "load15", $l15 );
More information about the padb-devel
mailing list