vnetperf

The vnetperf utility allows you to measure the network performance of your hosts. It can measure network latency and the throughput for both the TCP and UDP protocols.

This utility introduces a high network load and must not be used on a running Vertica cluster or database performance is degraded.

Using this utility you can detect:

  • if throughput is low for all hosts or a particular host,
  • if latency is high for all hosts or a particular host,
  • bottlenecks between one or more hosts or subnets,
  • too low a limit in the number of TCP connections that can be established simultaneously,
  • and if there is a high rate of packet loss on the network.

The latency test measures the latency from the host running the script to the other hosts. Any host that has a particularly high latency should be investigated further.

The throughput tests measure both UDP and TCP throughput. You can specify a rate limit in MB/s to use for these tests, or allow the utility to use a range of throughputs to be used.

Syntax

vnetperf [options] [tests]

Recommended Network Performance

  • The maximum recommended RTT (round-trip time) latency is 1000 microseconds. The ideal RTT latency is 200 microseconds or less. Vertica recommends that clock skew be kept to under 1 second.
  • The minimum recommended throughput is 100 MB/s. Ideal throughput is 800 MB/s or more.

    UDP numbers may be lower, multiple network switches may reduce performance results.

Options

Option Description
--condense

Condense the log into one JSON entry per line, instead of indented JSON syntax.

--collect-logs

Collect the test log files from each host.

--datarate rate

Limit the throughput to this rate in MB/s. A rate of 0 loops the tests through several different rates. The default is 0.

--duration seconds

The time limit for each test to run in seconds. The default is 1.

--hosts host1,host2,...

A comma-separated list of hosts on which to run the tests. Do not use spaces between the comma's and the host names.

--hosts file

A hosts file that specifies the hosts on which to run the tests. If the --hosts argument is not used, then the utility attempts to access admintools and determine the hosts in the cluster.

--identity-file file

If using passwordless SSH/SCP access between the hosts, then specify the key file used to gain access to the hosts.

--ignore-bad-hosts

If set, run the tests on the reachable hosts even if some hosts are not reachable. If not set, and a host is unreachable, then no tests are run on any hosts.

--log-dir directory

If --collect-logs is set, the directory in which to place the collected logs. The default directory is named logs.netperf.<timestamp>

--log-level LEVEL

The log level to use. Possible values are: INFO, ERROR, DEBUG, and WARN. The default is WARN.

--list-tests

Lists the tests that can be run by this utility.

--output-file file

The file that JSON results are written to. The default is results.<timestamp>.json.

--ports port1,port2,port3

The port numbers to use. If only one is specified then the next two numbers in sequence are also used. The default ports are 14159,14160, 14161.

--scp-options 'options'

Using this argument, you can specify one or more standard SCP command line arguments enclosed in single quotes. SCP is used to copy test binaries over to the target hosts.

--ssh-options 'options'

Using this argument, you can specify one or more standard SSH command line arguments enclose in single quotes. SSH is used to issue test commands on the target hosts.

--vertica-install directory

If specified, then the utility assumes Vertica is installed on each of the hosts and to use the test binaries on the target system rather than copying them over using SCP.

Tests

If the tests argument is omitted then all tests are run.

Test Description
latency

Test the latency to each of the hosts.

tcp-throughput

Test the TCP throughput among the hosts.

udp-throughput

Test the UDP throughput among the hosts.

Returns

For each host it returns the following:

Latency test returns:

  • The Round Trip Time (rtt) latency for each host in milliseconds.
  • Clock Skew = the difference in time shown by the clock on the target host relative to the host running the utility.

UDP and TCP throughput tests return:

  • The date/time and test name.
  • The rate limit in MB/s.
  • The node being tested.
  • Sent and Received data in MB/s and bytes.
  • The duration of the test in seconds.

Example

/opt/vertica/bin/vnetperf --condense -hosts 10.20.100.66,10.20.100.67 --identity-file '/root/.ssh/vid_rsa'