![]() |
![]() ![]() ![]() |
![]() |
![]() |
|||||
![]() |
||||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
|||||
![]() ![]() ![]() ![]() ![]() |
logvars The web100 package includes a gui interface called Diagnostic Tool Builder (dtb) that allows access to view any the progress of any TCP connection taking place. The newer versions also incorporates a feature to alter the local window sizes `on-the-fly' using either dtb or the supplied API's (Future versions hope to be able to 'automatically' adjust the window size to maintain optimum performance for the connection). Whilst dtb is a good tool for watching the connection, what we needed in our tests was a way of outputting the Web100 updates such that we could analyse the transfers at a later date. This is especially important as file transfers less than about 5 to 10 megabytes at Gig speeds would literally terminate before dtb could be opened and used to monitor the connection. As such we created a custom program which allows the output of the TCP-KIS variables into a file which could then be imported into a spreadsheet for easy data manipulation and analysis. The custom program in question is called lovars, having been heavily influenced by the supplied API demo code 'readvar' included with the Web100 package. The program reads in a list of variables that the user wishes to analyse and requires the Connection ID (CID) of the transfer that the user wishes to monitor. The current version is able to wait for an un-open connection before logging, although this feature is somewhat primitive at present. The program is run from the command line with the following command, [ytl@lon02 ytl]$ ./logvars Version 1.3 for Web100 versions alpha1.2 and above. Usage: logvars -c {cid,new} [OPTIONS] -c {cid,'new',+n} [OPTIONS] are: -s -t <msec> -e -o <file> -v <file> -h Report bugs to <ytl@hep.ucl.ac.uk>.
The program itself monitors the /proc/web100 directory in which information about each connection is temporally stored whilst open. Each connection creates a new directory in /proc/ which represents the CID of each item. Output of the program is to the screen by default. In order to output the data of the connection to a file, one should use the standard pipe commands in Unix, e.g. ./readvars -c <CID> [OPTIONS]>
Web100_output.dat Upon execution of the program, if the CID does not exist, it will wait until the directory for that CID is created by Web100 in the /proc/web100 directory. The advantage of this method of monitoring is that the entire connection can be monitored from start to finish. Output from the program is in tab-delimited format and can be monitored using a simple cgi script which is currently located at pc35. Limitations The current release relays heavily on while loops to both wait for the web100 directory to be created when a TCP/IP connection initiates, and also during transfer polling. This can have a heavy load on the processor of the machine as a consequence. On the Dell Precision machines that i have for MB-NG, the %CPU load as shown by top is 99.9 - however, this is spread over the two processors so it's not so bad. This could have a major effect on a single processor system. Due to the structure of the program (and inefficient coding), the current release can only provide a time resolution as low as 30millisecs on a Pentium 3 500Mhz. (when its outputting to a file rather than the screen). One hopes to decrease this value to allow live preview of packet arrival. However, this value is also limited by the Web100 software, of which a study is to be performed. During transfer monitoring of a web100 connection, readvars takes up a lot less processor time - reaching a max of about 16% CPU, with a vage average of about 8%. For example of comparision, iperf utilises approximately the same amount of processor load when conducting a transfer. Other ProgramsWeb based visualisatin package of logvars log files. TBA. Download Source file in C, current version is 0.4. here.
(web100 source files required)
|
|||||||
![]() |
![]() |
![]() |
||||||
![]() |
![]() |
![]() |
||||||
© 2001-2003, Yee-Ting Li, email: ytl@hep.ucl.ac.uk,
Tel: +44 (0) 20 7679 1376, Fax: +44 (0) 20 7679 7145 Room D14, High Energy Particle Physics, Dept. of Physics & Astronomy, UCL, Gower St, London, WC1E 6BT |
||||||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |