Program Logic Manual of the SLAC WAN Bandwidth Tests
Connie Logg
February 11, 2003

Acknowledgements
Several people have contributed to this package including: Les Cottrell, Manish Bhargava, Fabrizio Coccetti, Jerrod Williams, and I-Heng Mei

This package has been developed to send various types of probes to specific nodes on the internet. It performs the probes, and then saves, analyzes, and reports the results via the WWW. The probes may use network measurement tools such as ping, traceroute, and iperf, or, file transfer applications such as bbftp and bbcp.

Companion Documentation:

Directory and Data Structure Formats
Iperf Information
Bbcp Information
Bbftp Information
Bandwidth Tests Home Page
Porting Document
SLAC WAN Bandwidth Test: how to install the CGI scripts
Oracle Database Access Information
Topology Graphs' Documentation

*NEWLY ADDED FEATURES*

After Run Analysis (Connie Logg)

$SRCDIR/post-test-processing-script -g n -c MHCF -s source_directory - This called by "run-bw-tests" to process the data after a run. Note the '-g' parameter. If -g = 1, as passed to the run-bw-tests script, the html files include the text for invoking the cgi scripts. If anything else, the cgi script is not included. $SRCDIR/post-test-processing-script calls the following scripts:

Overnight Analysis (Connie Logg)

There are several things that need to be taken care of after midnight. The '$SRCDIR/overnight-processing-script -g n' is called to do this. Note that '-g' is that parameter which indicates whether the text for invoking the cgi scripts is included in the html. '$SRCDIR/overnight-processing-script -c MHCF -s source_directory calls:

Summarizing the data for Historical Purposes (Connie Logg)
$SRCDIR/history/create-history-pages - calls the following scripts to perform the historical tasks. Note that it is called by the overnight processing. After all the plots are done, it creates the historical html pages

Site Customization Code Snipets (Connie Logg) - called by "make-bw-html". The snipits can be customized by non-SLAC sites to tailor the web page to their own site.
$SRCDIR/site-customization/top-of-page.pl - can be customized to provide site specific top of page boilerplate
$SRCDIR/site-customization/bottom-of-page.pl - can be customized to provide site specific bottom of page boilerplate

Other Useful Snipets of Code (Connie Logg)
$SRCDIR/date.pl - Code snipet which is useful for processing the date information in the schema used in the bw-tests
$SRCDIR/opt_c.pl - This snipet can be copied into code to process the -c parameter
$SRCDIR/evalparms.pl - This snipet can be copied into code to process the results coming back from the configuration interface scripts.


Run Control and Automated Processing
(Connie Logg) The following crontab entries control the running of the bw tests scripts at SLAC.
#Antonia: run the bw tests every 90 minutes
antonia;120 35 0,3,6,9,12,15,18,21 * * * /afs/slac/package/netmon/bandwidth-tests/v2src/run-bw-tests -c /afs/slac/package/netmon/bandwidth-tests/v2src/antonia.cfg -g 1 -D 2 -s /afs/slac/package/netmon/bandwidth-tests/v2src
antonia;120 5 2,5,8,11,14,17,20,23 * * * /afs/slac/package/netmon/bandwidth-tests/v2src/run-bw-tests -c /afs/slac/package/netmon/bandwidth-tests/v2src/antonia.cfg -g 1 -D 2 -s /afs/slac/package/netmon/bandwidth-tests/v2src

# do the overnight processing
antonia;120 30 2 * * * /afs/slac/package/netmon/bandwidth-tests/v2src/overnight-processing-script -c /afs/slac/package/netmon/bandwidth-tests/v2src/antonia.cfg -g 1 -s /afs/slac/package/netmon/bandwidth-tests/v2src
# run the hung processes cleranup script once an hour
antonia;30 1 * * * * /afs/slac/package/netmon/bandwidth-tests/v2src/bw-cleanup -c /afs/slac/package/netmon/bandwidth-tests/v2src/antonia.cfg -s /afs/slac/package/netmon/bandwidth-tests/v2src

Loading the Target Nodes (Les Cottrell) (Jerrod Williams)
remoteos/remoteos - This is the code which downloads all the configuration files to load the destination nodes. It does the following:

Futures:

Prediction code which is still under development(Les Cottrell)(Connie Logg)

$bandsrc/bw_predict UNDER DEVELOPMENT
This returns a "prediction" for a given set of filtered data, using a given method, and given parameters.
Syntax:
($status,$average,$stdev,$min,$max,$num_samples,$tile25,$tile50,$tile75)=bw_predict($node,$datatype,$samplespec,$starttime);
($status,$average,$stdev,$min,$max,$num_samples,$tile25,$tile50,$tile75) = bw_predict -n node -t datatype -i $samplespec -d $starttime
Where:

  • $node indicates the node which is the input data source
    • node1.in2p3.fr
    • node1.ccs.ornl.goc
    • etc.
  • $datatype is the type of data we are interested in
    • iperf
    • bbcpmem
    • bbcpdisk
    • bbftp
  • $samplespec describes the ramge of data going back from $starttime
    • "nH" is the number of hours to go back from $starttime
    • "nD" is the number of days to go back from $starttime
    • "n" is the number of measurements you want to go back from $starttime. Note that it goes back until "n" samples have been found.
  • $startime is the time to go back from. It must be if the form "mm/dd/yyyy hh[:mm]" or can be just a date in which case the hh:mm:ss = 00:00:00.
And where:
  • $status is a return code.
    • $status = "" if the request was processed ok
    • $status = "no data" if there was no data
    • $status = "partial" if a request was made for n samples and there were not n samples available
  • $average is the average of the samples (in megabits/sec)
  • $stdev is the standard deviation of the samples (in megabits/sec)
  • $min is the minimum values found (in megabits/sec)
  • $max is the maximum value found (in megabits/sec)
  • $num_samples is the actual number of valid samples found
  • $tile25 is the 25%tile
  • $tile50 is the 50%tile (median)
  • $tile75 is the 75%tile
Back to the Porting Document
ERRATA:
  • 3/2/03 - CAL - One of the iperf plotdata colums is mislabeled in some cases. The column that is labeled "sumMbps" should actually be labeled "sumMByt". This is the total number of bytes transfered by the iperf. It is not used for anything. I have just kept it as a sanity check, and it is useless without more information.