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.