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.
Important: 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.
Note: 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
Note: 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 amongst the hosts. |
udp-throughput |
Test the UDP throughput amongst 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'