rvperfm

Command

Syntax

rvperfm  [-service service ]
         [-network network ]
         [-daemon daemon ]
         [-subject subject ]
         [-inbox]
         [-auto]
         [-non-vectored]
         [-terse]
         [-messages m ]
         [-size size ]
         [-interval interval ]
         [-batch batch_size ]
         [-cm]
         [-cm-name name ]
         [-cm-ledger filename ]
         [-cm-sync]
         [-h]

Purpose

rvperfm coordinates the tasks of measuring network performance. It sends messages to the network, and reports statistics to stdout.

Remarks

In single mode (without the flag -auto), rvperfm sends one run of messages, and then exits.

In automatic mode (with the flag -auto), rvperfm sends several runs of messages, adjusting the batch size and interval parameters to empirically determine the combination that yields maximum network throughput. After it finds the optimal settings, it exits; the parameters and report of the final run reflect optimal network performance. For details, see Automatic Mode—Binary Search.

Outline

Each run consists of these steps:

Procedure 

1. Dynamically discover the available rvperfs processes; output a list of participating instances. In the discovery step, rvperfm polls for listeners, and waits 3 seconds for ready signals from rvperfs processes; then it continues to the next step.
2. Send the run of messages.
3. Output statistics that measure the performance of the sender.
4. Output statistics that measure the performance of each receiver (if any).
5. Output a summary of error advisories pertaining to the sender.

Collision

When two instances of rvperfm (simultaneously) attempt to use the same subject, service and network, at least one of them detects the collision and exits immediately.

Simultaneous instances that differ in subject or service (or both) do not constitute a collision. Such processes can coexist.

Parameter

Description

-service service

service is the service name or UDP port number that defines the service group.

See Service Selection.

If you do not specify the -service parameter, the default value is 7599.

-network network

network narrows the service group by selecting a local network by network name or IP network number (when the host computer has multiple network interfaces). It can also specify multicast addresses.

See Network Selection.

If you do not specify the -network parameter, the default value is the multicast address ";225.9.9.9". On operating systems that do not support multicast addressing, you must supply a valid broadcast network address.

-daemon daemon

The -daemon parameter instructs the program about how and where to find rvd and establish communication.

See Daemon Client Socket—Establishing Connections.

You can specify a daemon on a remote computer. For details, see Remote Daemon. However, the program cannot start a remote daemon automatically—you must start it manually on the remote computer.

If you do not specify the -daemon parameter, the program finds the local daemon on TCP socket 7500.

-subject subject

rvperfm sends messages to this subject name.

If you specify neither -subject nor -inbox, then the program uses _perf as a prefix to construct broadcast subjects.

-inbox

rvperfm sends point-to-point messages

rvperfm probes the network to discover available instances of rvperfs. The first instance to respond becomes the sole receiver—rvperfm sends point-to-point messages only to an inbox in that process instance.

(Since rvperfm uses broadcast subjects for the initial discovery phase, it is not a contradiction to specify both -inbox and -subject parameters. When both parameters are present, -inbox determines the sending behavior.)

-auto

When present, rvperfm operates in automatic mode, sending several runs of messages to automatically determine the optimal batch size and interval parameters for the network.

When absent, rvperfm operates in single mode, sending only one run of messages.

See also, Automatic Mode—Binary Search.

-non-vectored

When present, rvperfm sends individual messages.

When absent, rvperfm sends each batch of messages using a single vector call.

-terse

When present, suppress most reporting and simplify the final report.

The terse final report contains one line per receiver (rvperfs). Each line is a comma-separated list of the following values:

send message rate, received message rate,
send byte rate, received byte rate,
elapsed send time, elapsed receiver time,
receiver SlowConsumer, receiver DataLoss,
messages sent, send size, batch interval, batch size, reply name

For descriptions of these values, see -reliability time.

-messages m

rvperfm sends m messages per run.

If not present, the default is 10000 messages per run.

-size size

rvperfm sends messages with size bytes of payload data.

Use this size to model application data rates. This size does not include message header data nor packet overhead, so computing the network byte transfer rate from this size results in an slight underestimate of the actual throughput.

If not present, the default is 256 payload bytes in each message.

-interval pause

rvperfm sends messages in batches, waiting for pause seconds between the end of one batch and the start of the next batch.

When absent, the default pause is zero seconds.

In single mode, rvperfm sends the run with this interval.

In automatic mode, rvperfm sends the first run with this interval, adjusting the parameters in subsequent runs.

Warning 

Change of Units: In earlier releases the value of this parameter was interpreted as milliseconds—now it is a floating point value interpreted as seconds.

-batch batch_size

rvperfm sends messages in batches, with batch_size messages in each batch.

When absent, the default is 128 messages per batch.

To send messages individually, specify 1 as the batch_size.

In single mode, rvperfm sends the run with this batch size.

In automatic mode, rvperfm sends the first run with this batch size, adjusting the parameters in subsequent runs.

-cm

When present, rvperfm sends messages with certified delivery features. If rvperfs also specifies -cm, then the programs establish a certified delivery agreement.

-cm-name name

When present, rvperfm specifies this reusable correspondent name when it enables certified delivery.

When -cm is present, but -cm-name is not, rvperfm operates with a non-reusable correspondent name.

-cm-ledger filename

When present, rvperfm uses this ledger file. You must also supply -cm-name.

-cm-sync

When present, then operations that update the ledger file do not return until the changes are written to the storage medium. You must also supply -cm-ledger and -cm-name.

When absent, the operating system writes ledger file changes to the storage medium asynchronously.

-h

When present, output a parameter usage list to stdout, and exit immediately.