lat_rpc(8) measure interprocess communication latency via Sun RPC


lat_rpc -s

lat_rpc [ -P <parallelism> ] [ -W <warmups> ] [ -N <repetitions> ] [ -p tcp|udp ] hostname [ udp|tcp ]

lat_rpc -S hostname


lat_rpc is a client/server program that measures interprocess communication latencies. The benchmark passes a token back and forth between the two processes (this sort of benchmark is frequently referred to as a ``hot potato'' benchmark). No other work is done in the processes.

This benchmark may be compared to the TCP and UDP forms of the same benchmark to accurately see the cost of using RPC versus the cost of using plain old TCP or UDP sockets. It is worth noting that the RPC form is passing back and forth a single byte, not some long complicated record.

lat_rpc has three forms of usage: as a server (-s), as a client (lat_rpc localhost), and as a shutdown (lat_rpc -S localhost).

The client form may specify the protocol over which the RPCs are performed. The default is to measure performance for both udp and tcp.


The reported time is in microseconds per round trip and includes the total time, i.e., the context switching overhead is includeded. Output format is like so

RPC/udp latency using localhost: 1344 microseconds
RPC/tcp latency using localhost: 2089 microseconds


Funding for the development of this tool was provided by Sun Microsystems Computer Corporation.


Carl Staelin and Larry McVoy

Comments, suggestions, and bug reports are always welcome.