NAME

rxperf - Provides Rx throughput tests and profiling

SYNOPSIS

rxperf client -c <{send,recv,rpc,file,shutdown}> -b <bytes> | -S <sendbytes-S <recvbytes> | -f <filename> [-d <debug-log-file>] [-j] [-l <busy-wait-loop-iterations>] [-m <rx-max-mtu-size-bytes>] [-p <server-port-number>] [-r <rx-read-size-bytes>] [-s <server-name-or-addr>] [-t <number-of-threads>] [-C <number-of-threads-per-rx-connection>] [-u <udp-buffer-size-kbytes>] [-v] [-w <rx-write-size-bytes>] [-D] [-N] [-P <min-peer-timeout-seconds>] [-T <times-to-execute-rpc>] [-V] [-W <max-send/recv-window-size-packets>] [-x <security-class>:<level>] [-4] [-6] [-help]

rxperf server [-d <debug-log-file>] [-j] [-m <rx-max-mtu-size-bytes>] [-p <server-port-number>] [-r <rx-read-size-bytes>] [-s <minprocs>] [-u <udp-buffer-size-kbytes>] [-w <rx-write-size-bytes>] [-N] [-P <min-peer-timeout-seconds>] [-V] [-W <max-send/recv-window-size-packets>] [-help]

rxperf version =for html </div>

DESCRIPTION

Rx is the remote procedure call (RPC) protocol used by AuristorFS. The rxperf command enables the issuer to test Rx communication thoroughput between two endpoints. On one endpoint the issuer starts the rxperf process in server mode and on the other endpoint the issuer starts the rxperf process in client mode.

OPTIONS

Use these options when invoking rxperf as a client or a server.

-d <debug-log-file>

The -d option instructs rxperf to write debug output to a log file.

-j

The -j option disables the use of Rx jumbograms by rxperf.

-l <busy-wait-loop-iterations>

The -l option makes the client enter a busy-wait loop every time it writes rx-write-size-bytes or reads rx-read-size-bytes. It can be used to simulate slow producers or consumers. The value is the number of iterations of a simple busy wait loop that are executed each time.

-m <rx-max-mtu-size-bytes>

The -m option limits the size of Rx packets to the specified maximum transmission unit (MTU), in bytes.

-p <server-port-number>

The -p option instructs rxperf in client mode to send packets to the specified UDP port and in server mode to listen for packets on the specified UPD port.

When -p is not provided, UDP port 7009 is used. No other Auristor services run on port 7009. This port is dedicated rxperf.

-r <rx-read-size-bytes>

The -r option specifies how many bytes rxperf should attempt to read from the network at a time. The default is 524,288 bytes.

-u <udp-buffer-size-kbytes>

The -u option specifies the UDP buffer size (in kilobytes) that rxperf will request for the network socket. The default value is 256 KB. Larger values can be required to prevent packet loss when multiple threads are used.

-w <rx-write-size-bytes>

The -w option specifies the how many bytes rxperf should attempt to write to the network at a time. The default is 524,288 bytes.

-P <min-peer-timeout-seconds>

The -P option specifies the minimum number of seconds to to wait for peers to timeout. By default the value is zero, which means that rxperf will wait forever.

-N

The -N option instructs rxperf to skip the collection of statistics.

-V

The Rx library supports two methods for applications such as rxperf to read and write data from the Rx library. By default rxperf passes a single buffer to the Rx library at a time. The -V option enables the use of the Rx IOVEC API which reduces the number of function calls and can result in improved network throughput.

-W <max-send/recv-window-size-packets>

The -W option specifies the maximum number of packets in the Rx send window and the Rx receive window. The default maximum window size for Auristor 1.0 is 60 packets. The maximum value that can be set is 255 packets.

The maximum window size used by an Rx remote procedure call is the minimum of the maximum window size of the sender and the maximum window size of the receiver.

-4

The -4 option instructs rxperf to force the use of an IPv4 address for the host specified by [-s <server-name-or-addr>].

-6

The -6 option instructs rxperf to force the use of an IPv6 address for the host specified by [-s <server-name-or-addr>].

-help

Prints the online help for this command. All other valid options are ignored.

CLIENT-SPECIFIC OPTIONS

Use these options only when invoking rxperf as a client.

-c <{send,recv,rpc,file,shutdown}>

In client mode, you must select one of four options for generating Rx data.

  • The send option instructs the client to issue remote procedure calls that only send data to the server. Use the -b flag to specify the number of bytes to send.

  • The recv option instructs the client to issue remote procedure calls that only receive data from the server. Use the -b flag to specify the number of bytes to receive.

  • The rpc option instructs the client to issue remote procedure calls that both send data to the server and receive data from the server. Use the -S flag to specify the number of bytes to send, and -R to specify the number of bytes to receive.

  • The file option instructs the client to issue remote procedure calls that send the contents of a file to the server. Use the -f flag to specify the file to send.

  • The shutdown option instructs the server to exit.

-s <server-name-or-addr>

The -s option specifies the hostname or IP address of the server. If no hostname or IP address is specified, rxperf will connect to localhost.

-t <number-of-threads>

The -t option specifies the number of threads the client will use to simultaneously issue remote procedure calls to the server. The default is one thread.

-C <number-of-threads-per-rx-connection>

The -C option determines the number of rx connections that will be created based upon the threads specified by the -t parameter. The default is one rx connection for every four threads.

-x <security-class>:<level>

The -x option allows the security class used to protect the rxperf connection to be varied. The default is the cleartext 'rxnull' class. The 'rxkad' or 'rxgk' classes may also be chosen. When rxkad or rxgk are in use, one of three security levels - 'clear', 'auth', or 'crypt' must be selected.

-v

The -v option instructs rxperf to enable data verification. When enabled a random data pattern that can be verified by the receiver is used for data exchanges. The receiver will verify the message contents and generate an error if data corruption is detected.

-D

The -D option instructs rxperf to dump Rx statistics to STDOUT when the command completes. The displayed Rx statistics are the same as those generated by the rxdebug(1) -rxstats option.

SERVER-SPECIFIC OPTIONS

Use these options only when invoking rxperf as a server.

-s

The -s option specifies the minimum number of threads the Rx thread pool will allocate. The default is two threads. If there are Rx threads in excess of the minimum thread count that have been idle for more than one minute, they will be garbage collected to conserve operating system resources.

-S

The -S option specifies the maximum number of threads the Rx thread pool will allocate. The default is a maximum of twenty threads. If a remote procedure call is received and no thread can be allocated to service it, the call will be placed on a wait queue until a thread becomes available.

PRIVILEGE REQUIRED

No special privileges are required for this command.

-head1 SEE ALSO

rxdebug(1)

COPYRIGHT

Copyright AuriStor, Inc. 2014-2021. https://www.auristor.com/ All Rights Reserved.

ACKNOWLEDGEMENTS

"AFS" is a registered mark of International Business Machines Corporation, used under license. (USPTO Registration 1598389)

"OpenAFS" is a registered mark of International Business Machines Corporation. (USPTO Registration 4577045)

The "AuriStor" name, log 'S' brand mark, and icon are registered marks of AuriStor, Inc. (USPTO Registrations 4849419, 4849421, and 4928460) (EUIPO Registration 015539653).

"Your File System" is a registered mark of AuriStor, Inc. (USPTO Registrations 4801402 and 4849418).

"YFS" and "AuriStor File System" are trademarks of AuriStor, Inc.