diff options
| -rw-r--r-- | lib/Loadbars/Main.pm | 25 |
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); |
