RED stat

These tools are extensions of the default tools from the Altq-1.1.1 distribution. The extension has been done by Mikkel Chrisitansen and David Ott.

Introduction

Redstat is a small program that attaches to the kernel probing it for statistical information about the routing deamon.  We have extended redstat and fifoqstat with a feature for getting a detailed view of the queue on the router. These versions
require the 1000HZ AltQ 2.2.7 kernel.

The idea of this monitoring util is to do an intense obeservation of the router queue, and then print a summery every second. This statistics is printed along with other statistics each second.

Arguments

usage: redstat [options] interface
-i <interval>  -> time between kernel stats calls in microseconds (2000)
-s <howlong>   -> how long program executes in seconds            (60)
-a <avg_scale> -> scale for average queue length                  (512*4096)
-o             -> dump options

usage: fifoqstat [options] interface
-i <interval> -> time between kernel stats calls in microseconds (2000)
-s <howlong>  -> how long program executes in seconds            (60)
-o            -> dump options

The interval describes how often the kernel should be probed for the queue length - we normally use 2000
microseconds which in the real world will allow about 333 samples per second.

A special note on avg_scale:
The RED average queue length (and many other parameters) is maintained
as a fixed-point value inside the kernel.  We use 12-bit decimal place
for fixed-point values.
redstat reads the average queue length in the fixed-point form to
maintain the precision and the value should be divided by 4096 (2^12).

In redstat.c, the avg_scale can be changed for a debugging purpose but
you should not change it unless you are playing with fixed-point
precision.

Logs

The logs both contain summary information and instant information.
 
time_sec time_usec time stamp
s_no number of samples taken since the last summery print
q_len the current length of the queue (not too usefull!)
min_length min length of the queue since the last summery
max_length max length of the queue since the last summery
va.avg the average queuelenght over s_no samples
va.var the variance of queue length  over s_no samples
xmit_packets cumulative number of packets sent
xmit_bytes cumulative number of bytes sent
drop_packets cumulative droped
drop_bytes cumulative bytes droped

example from fifoqstat:
run:Mon Oct 12 18:21:49 1998
interval:2000
howlong:2760
format:time_sec time_usec s_no q_len min_length max_length va.avg va.var xmit_packets xmit_bytes drop_packets
drop_bytes kps
908230910 2023 242 0 0 0 0.00 0.00 95 14258 0 0 157.11
908230911 1022 332 0 0 0 0.00 0.00 132 20300 0 0 48.38
908230912 33 332 0 0 0 0.00 0.00 194 30096 0 0 78.37
 

example from redstat:
run:Mon Oct 12 17:24:39 1998
interval:2000
howlong:2760
avg_scale:4096
format: time_sec time_usec s_no q_len min_length max_length q_avg va.avg va.var xmit_packets xmit_bytes drop_p
ackets drop_forced drop_unforced marked_packets kps
908227480 2029 55 0 0 0 0.00 0.00 0.00 77 11566 0 0 0 0 560.78
908227481 1024 332 0 0 0 0.00 0.00 0.00 114 17504 0 0 0 0 47.55
 
 

Distribution

 /usr/src/routertool.tgz - the tools have been installed on borg!
 

Note


If you wan't too see whether the tools are working - be sure to put enough load on the link otherwise
the summary info may make you belive that something is wrong .