G'Day John,

On Wed, Jan 24, 2007 at 10:36:43AM -0800, John wrote:
> Sorry if this is not the proper place to post...
> 
> I just discovered nicstat yesterday!  We have a mix of Sun and Fujitsu Prime 
> Powers... I added the Fujitsu Gigabit interfaces to nicstat and things look 
> like they are running well:
> 
>     Time   Int   rKb/s   wKb/s   rPk/s   wPk/s    rAvs    wAvs   %Util     Sat
> 16:25:48 fjge2    0.24    0.92    2.55    2.85   95.69  329.54    0.00    0.00
> 16:25:48 fjge0    9.93    1.62   15.80    6.18  643.68  269.02    0.01    0.00
> 16:25:48 fjge3    0.11    0.13    1.05    0.80  105.76  168.83    0.00    0.00
> 16:25:48 fjge1 49889.96 1179.98 34305.80 17224.20 1489.17   70.15   41.84    
> 0.00
> 
> but then I eventually when the system really gets busy:
> 
>     Time   Int   rKb/s   wKb/s   rPk/s   wPk/s    rAvs    wAvs   %Util     Sat
> 16:30:48 fjge2    0.58    1.25    5.75    6.52  103.94  195.72    0.00    0.00
> 16:30:48 fjge0    0.86    0.20    6.70    0.93  131.13  218.88    0.00    0.00
> 16:30:48 fjge3 300239975113690.69  268.09 17742.80 3918.23 17327915239782.86  
>  70.06  100.00    0.00
> 16:30:48 fjge1 300239975147902.75 1414.54 41165.58 20648.68 7468513978338.35  
>  70.15  100.00    0.00

You are the first person to ever experience this!

Firstly, try the Perl version - as it's output format has been improved for
large traffic.* There is also a "-s" output style for extreme loads, which
will also improve the output.

The actual bug may be a combination of fjge only exporting 32-bit stats,
and a heavy workload overflowing these stats. Please email me the
output from "kstat -n fge1" if you can.

cheers,

Brendan

---

* In particular, the following algorithm made the output columns much
neater:

   # print_neat - print a float with decimal places if appropriate.
   #
   # This specifically keeps the width to 7 characters, if possible, plus
   # a trailing space.
   #
   sub print_neat {
       my $num = shift;
       if ($num >= 100000) {
           printf "%7d ", $num;
       } elsif ($num >= 100) {
           printf "%7.1f ", $num;
       } else {
           printf "%7.2f ", $num;
       }
   }

We were planning on dropping whitespace to retain column alignment in
the same way as vmstat does, at which point the output will be quite
robust.

Reply via email to