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.
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. |
netperf
.
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
.
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.
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.
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.
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:
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.
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.