summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Loadbars/Main.pm25
1 files changed, 23 insertions, 2 deletions
diff --git a/lib/Loadbars/Main.pm b/lib/Loadbars/Main.pm
index afce58c..945e197 100644
--- a/lib/Loadbars/Main.pm
+++ b/lib/Loadbars/Main.pm
@@ -121,11 +121,32 @@ sub stats_thread ($;$) {
close \\\$fh;
}
- for (0..$C{samples}) {
- loadavg();
+ sub parse_cpu_line {
+ my \\\$line = shift;
+ my ( \\\$name, \%load );
+
+ ( \\\$name, \@load{qw(user nice system idle iowait irq softirq steal guest)} ) =
+ split ' ', \\\$line;
+
+ # Not all kernels support this
+ \\\$load{steal} = 0 unless defined \\\$load{steal};
+ \\\$load{guest} = 0 unless defined \\\$load{guest};
+
+ \\\$load{TOTAL} =
+ sum( \@load{qw(user nice system idle iowait irq softirq steal guest)} );
+
+ return ( \\\$name, \%load );
+ }
+ sub cpu {
printf qq(CPUSTATS\n);
cat(qq(/proc/stat));
+ }
+
+ for (0..$C{samples}) {
+ loadavg();
+ cpu();
+
printf qq(MEMSTATS\n);
cat(qq(/proc/meminfo));
printf qq(NETSTATS\n);