RLM Performance Testing

The RLM License Administration bundle includes several useful binaries as well as a copy of this manual. The License Administration bundle includes a performance test program called rlmtests.

RLM License Administration bundles can be found here: https://reprisesoftware.com/support/admin/

Agree to the license terms and click GET THE BUNDLE, then select the kit(s) you want to download. Save these on your system, then uncompress and (on Unix) extract the binaries with the tar xvf command. On Windows, the kit is in a WinZip archive.

Each kit has a descriptive name on the website. The file names of the kits follow Reprise Software’s platform naming conventions, with .tar.gz appended for Unix, or .zip for Windows.

To unpack the License Administration bundle, follow these steps:

At the shell prompt on Unix:

% gunzip platform.tar.gz
% tar xvf platform.tar

That is all there is to it - the kit contains pre-built binaries and this manual.

On Windows, the kit is in WinZip format. Extract the binary directory (x86_w3 for 32-bit or x64_w3 for 64-bit) to a convenient location.

The performance test can be run by typing the command rlmtests at the shell on Unix or in a command window on Windows. When run, rlmtests creates the licenses required and starts a license server, then it runs the tests, reporting the results on the screen.


The Tests

rlmtests performs 2 categories of tests:

  • checkout performance tests

  • server capacity tests

The checkout performance tests consist of 6 separate tests, named A through F. Each of these tests does performance measurements in different scenarios, as shown in the table below.

Test

Server Environment

Test Details

Notes

A

No clients connected

One rlm_init() followed by a loop of rlm_checkout() calls.

The server must maintain the total number of checkout contexts over the course of this test.

B

No clients connected

One rlm_init() followed by a loop of rlm_checkout()rlm_checkin() calls.

This is the fastest test, because the server is only handling one checkout context at a time.

C

No clients connected

Loop of rlm_init()rlm_checkout()rlm_checkin()rlm_close() calls.

Similar to test B, with the overhead of initialization on each call.

D

300 (default) clients connected

Same as “A”

Similar to A except that the server now has a number of clients that it is managing.

E

300 (default) clients connected

Same as “B”

Similar to B except that the server now has a number of clients that it is managing.

F

300 (default) clients connected

Same as “C”

Similar to C except that the server now has a number of clients that it is managing.

The server capacity test attempts to determine the total number of clients that the server can handle. This test starts up a number of sub-processes which each simulate 1000 clients connected to the server. Sub-processes are started until a checkout fails (or when 50 sub-processes all succeed.) During the course of this test, the checkout performance time is reported as each subprocess completes.


The Test Environment

rlmtests runs the client and server on the same machine by default. However, you can run the server on a separate machine from the test client by specifying the -s option on the machine that is to run the server, and the -a hostname option on the client machine to specify the server machine name.

Note that rlmtests depends on having the RLM, ISV server, rlmutil, and rlmsign binaries in the same directory as rlmtests. This will be the case when you install the License Administration bundle. If you wish to run rlmtests from another directory, be sure to copy the other binaries as well.

rlmtests options

rlmtests usage is as follows:

rlmtests [-a host] [-c loopcount] [-d] [-h] [-l static#] [-p port#] [-s] [subprocess_client_count]

Where:

  • -a host - Run the client side only against the server on machine host. Note that the server must be already running on host.

  • -c loopcount - Controls the number of iterations for the loops for tests A-F. Default is 12000. (Note that not all the loops use this count, but all are scaled in proportion to this number).

  • -d - Turn on debugging output.

  • -h - Print help text and exit.

  • -l static# - Use static# simulated clients for tests D-F (300 default).

  • -p port# - Use port# for the server port (should be specified on both server and client side if running on different machines). The default port # is 30000.

  • -s - Run as the server side only.

  • subprocess_client_count - The number of simulated clients which each subprocess will run in the server capacity tests. The maximum value is 2000.