Commit | Line | Data |
---|---|---|
3a8d2b2f TPVT |
1 | #!/usr/bin/perl |
2 | ||
3 | open PROC_STAT, "</proc/stat"; | |
4 | my @proc_stat=<PROC_STAT>; | |
5 | close PROC_STAT; | |
6 | my @cpu_stat_t0 = grep {s/^cpu\d+\s//} (@proc_stat); | |
7 | sleep 1; | |
8 | open PROC_STAT, "</proc/stat"; | |
9 | my @proc_stat=<PROC_STAT>; | |
10 | close PROC_STAT; | |
11 | my @cpu_stat_t1 = grep {s/^cpu\d+\s//} (@proc_stat); | |
12 | ||
13 | my $total = 0; | |
14 | for (my $cpu_i=0; $cpu_i<(scalar @cpu_stat_t0); $cpu_i++) { | |
15 | my @stat_t0 = split /\s+/, $cpu_stat_t0[$cpu_i]; | |
16 | my @stat_t1 = split /\s+/, $cpu_stat_t1[$cpu_i]; | |
17 | my ($t0_idle, $t1_idle) = ($stat_t0[3], $stat_t1[3]); | |
18 | my ($t0_total, $t1_total) = (0, 0); | |
19 | $t0_total += $_ foreach @stat_t0; | |
20 | $t1_total += $_ foreach @stat_t1; | |
21 | ||
22 | my $load = ($t1_total - $t0_total == 0) ? 100: int((100 * (($t1_total - $t0_total) - ($t1_idle - $t0_idle))/($t1_total - $t0_total)) + 0.5); | |
23 | print " +" unless ($cpu_i == 0); | |
24 | printf "% 5.1f%% ", $load; | |
25 | $total += $load; | |
26 | } | |
27 | printf " = % 6.1f%%\n", $total; |