You need 4 nodes. We label them CLIENT, SERVER1, SERVER2 and SUT as per spec. You need a copy of impl-yyyy-mm-dd.tar.gz on all nodes, please satisfy its dependencies as listed in the file README. In the instructions, replace SUTIP with the IP that the SUT is using to communicate with the CLIENT, similarly, CLIENTIP with the IP the client is using to communicate with the SUT.
Benchmark is run by following these steps:
These are covered in order.
Build the SUT and tools:
SUT> tar xzvf impl-yyyy-mm-dd.tar.gzIf you wish to place artificial load on the SUT, first find out the operating parameter with iters:
SUT> cd impl
SUT> ./build-sut.sh
SUT> ./itersRun SUT with the provided script:
SUT> ./run-sut.sh SUTIP threads memory CPUload CPUiters auxlogfileWhere threads is the number of threads openser shall use (8 or more recommended), memory is the amount of memory needed for openser (should be 32M for every 1,000 users or more), CPUload is the desired amount of background CPU load percentage (use 0 for no load), CPUiters is the number reported by iters in the previous step, or 0 if not needed and auxlogfile is the file where memory and CPU load statistics are collected.
Build and run on both nodes:
SERVER1> tar xzvf impl-yyyy-mm-dd.tar.gz |
SERVER2> tar xzvf impl-yyyy-mm-dd.tar.gz |
This will place all the scripts and 3rd party software in the directory impl . Further instructions are relative to that directory.
Build impl also on CLIENT, and run echo test:
CLIENT> tar xzvf impl-yyyy-mm-dd.tar.gz
CLIENT> cd impl
CLIENT> ./build.sh SUTIP
CLIENT> ./sipp -sf options.xml SUTIP
First, find out the CPS (Calls Per Second) rate the SUT is capable of handling, with the supplied script calibrate.sh :
CLIENT> ./register.sh 2 SUTIP SERVER1IP SERVER2IPReplace start with a CPS rate the SUT can easily handle, and step with approx. 2% of start. Larger values of step will run faster, but are less accurate.
CLIENT> ./calibrate.sh 900 start step SUTIP CLIENTIP
For the benchmark you will need the CPS rate from the calibration run: (It is also recommended to clear Syslog before benchmarking, so that the to be analyzed data is absolutely correct)
CLIENT> ./benchmark.sh 900 CPS rate SUTIP CLIENTIPAfter the benchmark is run, run the log analyzator on the SUT:
SUT> ./alog -o basename -b begin -e end < /var/log/messages [or /var/log/syslog or some another used syslogging facility]Where begin and end are timestamps between which the benchmark took place and basename is the prefix for output filenames. See "alog -h" for details. Collect statistics and produce graphs from the analyzed log files through:
SUT> ./gencallstats.octave basename-calls.octaveCPU and memory usage statistics can be obtained by:
SUT> ./gencallgraphs.octave basename-cpu.octave [x11 | postscript | aqua]
SUT> ./loadan.sh auxlogfile begindate enddateWhere begindate and enddate should be in the form given by the SUT system's date command.