- Overview of the tests.
- Calculating the results.
- Output of results.
- Aim of this program.
- Overview of the tests.
The test will consist of sending RADIUS requests to the server and measuring
the throughput that it provides when delivering the responses.
Naturally if we only send one request at a time the results will depend a lot
on network latency and may be meaningless. So the test software will have to
be designed to send a number of requests concurrantly. Unfortunately the
RADIUS protocol uses a single byte as the packet identifier. So a RADIUS
client can only have a maximum of 256 requests outstanding at any time. To
solve this program I plan to allow Sandstorm to bind to multiple network
interfaces so that the level of concurrancy it can achieve will be 256 times
the number of interfaces. In a Linux system you can have up to 512 alias
interfaces per physical interface giving a maximum theoretical concurrancy
level of 128K. Given that the maximum concurrancy level you would want in a
reasonable test would be less than 10% of the number of phone lines I think
that this is more than adequate as I doubt that anyone has a system with NASs
comprising over a million phone lines talking to a single RADIUS server.
Besides I doubt that any Linux system could
handle the load of sending 128K packets out at once.
- Calculating the results.
The results will be calculated based on the average amount of time taken to
respond to a packet and on the average number of packets in progress at any
time (the achieved concurrancy). This will be calculated by dividing the
concurrancy by the average response time to get the average throughput in
packets per second.
- Output of results.
If run in default mode the program will perform a specified number of tests
and then display the average response time, the average throughput, the
minimum and maximum response times, and the number of timeouts. It will then
exit.
If run in statistics mode the program will run continually until interrupted
and output in comma-delimited format the statistics listed above. This will
allow the user to easily import the data into a spread-sheet to graph it.
- Aim of this program.
There are three aims for this program.
- To test the performance of the RADIUS server and allow tuning and
debugging of high load situations.
- To test the performance of computer systems to be used as RADIUS servers
and ensure that they are capable of doing the job.
- I believe I can write one of the fastest RADIUS servers ever and would
like to prove it! ;)
Copyright © 1999 Russell
Coker, may be distributed freely under the terms of the GNU Public
License (GPL) version 2.