rvlat

Command

Syntax

rvlat  { cli | srv }
       [-service service ]
       [-network network ]
       [-daemon daemon ]
       [-sample response_rate]
       [-messages m ]
       [-time t ]
       [-size size ]
       [-batch batch_size ]
       [-interval interval ]
       [-inbox]
       [-vectored]
       [-terse]
       [-datapoints]
       [-spikes threshold ]
       [-w filename]
       [-h]

Purpose

rvlat measures network latency. The client sends request messages to the server, and reports statistics to stdout and stderr. The server responds to client requests immediately.

Outline

Each run consists of these steps:

Procedure 

1. Send a run of messages.
2. Output statistics that measure the performance of the sender.
3. Output statistics that measure the performance of each receiver (if any).
4. Output a summary of error advisories pertaining to the sender.

Parameter

Description

Mode Parameters

cli

Run a client instance.

srv

Run a server instance.

Parameters that Apply to Both Client and Server

-service service

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

See Service Selection.

When absent, the default value is 12486.

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

When absent, the default value is the multicast address ";224.1.1.5". 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. Note that using a remote daemon could increase latency.

When absent, the program finds the local daemon on TCP socket 50000.

-vectored

Sending

When rvlat sends messages in batches, it can send either individual messages (with Send) or message vectors (with Sendv). The Send and Sendv calls have different latency characteristics. You can use this parameter to test either call.

When present, rvlat sends each batch of messages as a single vector (using the Sendv API call).

When absent, rvlat sends each message using a separate Send call.

Receiving

When rvlat receives messages, it can dispatch them as individual messages, or as message vectors. You can use this parameter to test either paradigm.

When present, rvlat receives messages with a vector listener.

When absent, rvlat receives messages individually with an ordinary listener.

-h

-help

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

Server-Only Parameters

-sample response_rate

For background information, see Measuring Technique.

When present, the server uses a random number generator to select a subset of requests to which it responds, while ignoring all the rest. The value of response_rate specifies the probability of a response (as a percentage) for each message.

When absent, the server responds to 100% of the request messages it receives.

We do not recommend using -sample when measuring in serial mode.

Client-Only Parameters that Control Measuring

-messages m

When present, rvlat sends a run of m messages.

When absent, the default is a run of 10,000 messages.

-time t

When present, rvlat sends a run of messages that continues for t seconds. When -messages is also present, -time overrides -messages.

When absent, the default behavior sends a specific number of messages (rather than running for a specific time).

-size size

rvlat sends request 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.

When absent, the default is 0 payload bytes in each message.

-batch batch_size

When present, rvlat sends messages in batches, with batch_size messages in each batch.

When absent, rvlat sends messages serially, sending each request immediately after receiving a response to the previous request.

-interval pause

When rvlat sends messages in batches, it waits for pause seconds between the end of one batch and the start of the next batch.

When absent, the default pause is 1 second.

In serial mode (that is, when -batch is absent), rvlat ignores this parameter.

-inbox

When present, the client sends request messages to an inbox on the server (using point-to-point protocols). The server responds to an inbox on the client.

When absent, the client sends request messages to a multicast subject (using either multicast or broadcast protocols, as specified in the -network parameter). The server responds to a multicast subject.

Client-Only Parameters that Control Output

-terse

The client can output two types of reports:

A terse report with limited information, for import to spreadsheets
A verbose, human-readable report

The two types of report include the same information, and both are in CSV format.

When this option is present, rvlat outputs only a terse report to stdout.

When absent, rvlat outputs two reports—a terse report to stdout, and a human-readable verbose report to stderr.

-datapoints

When present, rvlat outputs each round-trip data point (in milliseconds) to stdout.

Caution: This option can generate an unwieldy volume of data.

-spikes threshold

When present, rvlat outputs data points greater than threshold to stderr. Each data point includes the round-trip time and the sequence number of the request message (within the run).

-w filename

When present, rvlat takes output data that would otherwise go to stdout, and instead writes it to the specified file for later analysis.

If the file is not empty, rvlat appends the data at the end of the file.

Output to stderr is not affected; see Output Streams.