<< Conventions  |  ^ Index RTPL  |  Installation Overview >>

Description

Overview

The RTPL (Remote Throughput Ping Load) package is used for periodic net performance measurements tests between a set of workstation to view the network performance from a user's perspective. The performance measurements consist of round-trip and throughput measurements between a number of hosts. By default all pairs in the hosts set are used, but it is also possible to select the host pairs for the tests. Also, the machine load of the participating workstations is measured. In this way performance loss can be related to heavy machine load.

Because we are interested in the network performance from a user viewpoint and not in the maximum possible capacity of a network, the measurement parameters are configured to default values and the test durations are limited: various long-term statistics will blur the short-time fluctuations.

The tests are performed by scripts which are written in the scripting language Perl, which is available for many operating systems. The scripts are used to parse, sample and / or organise the results. The real performance measurements are executed by commonly used Internet tools invoked by the Perl scripts.

The presentation of the results is Web based and dynamic: the net performance data are stored in ZIP compressed plain text files, which are accessible from a Web server. There are various files so that a user can be offered several views of the data, including several time based averages. The file data are read into the Web browser by a Java Applet. The HTML scripting language JavaScript is used to display the data in various tables. The Applet can also be used to present the data in plot form.

The RTPL package is only available for Unix platforms. The main reason is that the so-called remote shell mechanism, used to obtain the results from the participating hosts, although implemented on Windows NT/9X, is not standard and not generally available. There is also a standard form of the package which only executes round-trip tests from the local host to a specified set of remote hosts. This basic package is available for both Unix and Windows NT/9X. The basic version is not further discussed here.

Measurement procedure

In this section a description of the RTPL package is given in more detail. The measurements are performed by a, so-called, control host. This workstation starts the net performance measurements at each of the participating workstations with a, so-called, remote shell command. Also the results of the measurements are send back via the remote shell command. This process is illustrated in this figure.

A remote shell makes it possible to control a remote process (nearly) in the same way as it was running at the local host. To be able to do this it connects the Standard I/O streams from the remote host to the local host using sockets. Also the relevant signals are transported to the remote host. Security aspects are solved in various ways, depending on the remote shell command used. However, in all cases there is no need to specify a user / password to get access to the remote host: this would prevent a non-interactive run of the command at the remote host. A modern implementation of the remote shell is the Secure Shell (ssh command) which offers an encrypted connection to the remote host.

Figure:  The control host starts the measurements at all test hosts i by means of remote shells. The host i performs the measurements to the test hosts j. The results are send back by host i to the control host.
At each host i of the set of hosts described above, the following net performance measurements are executed:

Throughput.
Formal definition from RFC 1224: "The maximum rate at which none of the offered frames are dropped by the device". It is a way to quantify the traffic flow which can be handled by a network connection. Default it is measured for the connections from the current host i to all other hosts, but it is also possible to skip connections. The throughput is measured with the public domain command netperf.

Round-trip or Ping time.
This Internet application is described in RFC 2151 by the paragraph quoted below:
Ping, reportedly an acronym for the Packet Internetwork Groper, is one of the most widely available tools bundled with TCP/IP software packages. Ping uses a series of Internet Control Message Protocol (ICMP) Echo messages to determine if a remote host is active or inactive, and to determine the round-trip delay in communicating with it.
The round-trip time quantifies the response offered by a network connection. It will be measured, before the throughput, across the same connections as the throughput. The round-trip time is measured with the system command ping.

Load.
This is expressed here as the number of fully active processes at a host. It is no network quantity, but it may help to explain unexpected performance decreases. The load is measured at the current host i, using the system command uptime.

The sampling of the results at the control host and the measurements at all hosts, participating in the tests, are performed by scripts in the scripting language Perl.

The Perl script at the control host collects the results of the measurements for each host~i and stores the results in ZIP compressed data files. The ZIP compression is used to reduce disk space and download time. See subsection "Presentation results and data and data files" for a description of the data files.

The tests are periodically started with the so called crontab command. A sample crontab input file, which is specific for a hosts set, will be generated at the installation of that set. If the previous test is not ended when a new one is started by crontab, the new test terminates. However, to prevent deadlocks, after some terminations the new version kills the old one and continues. Timeouts are used in the test scripts to prevent deadlocks.

With the crontab command, a user can start programs periodically at specific dates and or times using the cron daemon (server). It is available at most Unix systems. There also exists a public domain, source version.

Presentation results and data files

The presentation of the results is Web based: a Java Applet is used to load the data from the files into the memory of the Web browser from a user analysing the results. The functionality to read (ZIP compressed) data files from a Web browser is implemented in Java. Therefore, the Applet is required for access to the data.

A Java Applet is an architecture independent application, written in the Java programming language which runs in the so called Java virtual machine of the Web browser.

The HTML scripting language JavaScript is used to dynamically present to the user the various HTML tables of the data. That is: the user selects a view at the data and the HTML code is generated on demand by JavaScript. From the JavaScript code direct calls to Applet methods are applied to obtain the required data for the HTML tables to display. The direct call of an Applet method is a standard JavaScript feature which is (and should be) supported by most Web browsers. The Applet is also used to make various plots of the data. The plots are displayed in a new Applet window.

The following data files are available to be viewed via the Web:

The user can download the presented data file to the local host. He/she can also download a special version of the RTPL package which can be used to display the downloaded data files off-line. This version only contains the Web files from the package.

Test modes

The net performance tests can be executed in the modes explained below. These modes may be used in all possible combinations. Each selected mode leads to a different presentation of the tables and plots to the user. The modes to use can be selected at the configuration of the set of hosts by the user.

Help scripts

At the control host there are also Perl scripts available to manipulate the measured data in various ways. These scripts can among others be used to:

Net load

The Perl help script net_load can be used to determine the various routes between sites participating in this package. Also the network load at these routes, induced by the traffic generated at the participating sites, can be calculated. To be able to determine the routes between the sites, a simple generic routing scheme is used. However, it is also possible to define (parts of) routes manually.

In general this script can be used to estimate the effect upon the network load induced by this package for a particular site setup. Please note that the net_load script does not contain architecture dependent code. It should run at every architecture that is supported by Perl.

Platforms

The RTPL package is in principle available for all Unix platforms. It has been and is used with: BSD/OS (Free BSD), OSF1 (Digital Unix), IRIX64, HP-UX, Linux (RedHat, Debian), SunOS.


<< Conventions  |  ^ Index RTPL  |  Installation Overview >>