Run Data Repository Diagnostic Utilities

Vertica provides a set of utilities that test the performance of your hardware for the Data Repository.
You can verify that the environment is ideal for the database by testing the performance of your hardware for the data repository. Run the following Vertica utilities
before
you upgrade the data repository:
3
3
Run these utilities at any time. They are available on each node in the
/opt/vertica/bin
directory.
If the tests do not meet the recommendations, fix the issues before you continue the upgrade.
vcpuperf
The
vcpuperf
utility measures the CPU processing speed of the host and compares the speed against benchmarks for common server CPUs. The utility measures how long the server requires to complete the test, and determines whether CPU throttling is enabled.
For more information about this utility, see the Vertica documentation.
Follow these steps:
  1. Issue the following command on
    each
    data repository node:
    ./vcpuperf > /tmp/vcpuperf.out
  2. Verify that the  performance meets the following requirements:
    • The CPU time is consistent with the benchmark values in the output.
    • The low load time and high load time are within 10 microseconds. If the difference is grater than 50 microseconds, CPU throttling might be enabled on your system. Disable CPU throttling.
Example:
The following example shows the return from this utility:
$ /opt/vertica/bin/vcpuperf
Compiled with: 4.1.2 20080704 (Red Hat 4.1.2-52)
Expected time on Core 2, 2.53GHz: ~9.5s
Expected time on Nehalem, 2.67GHz: ~9.0s
Expected time on Xeon 5670, 2.93GHz: ~8.0s
This machine's time:
CPU Time: 7.740000s
Real Time:7.740000s
Some machines automatically throttle the CPU to save power.
This test can be done in <100 microseconds (60-70 on Xeon 5670, 2.93GHz).
Low load times much larger than 100-200us or much larger than the corresponding high load time
indicate low-load throttling, which can adversely affect small query / concurrent performance.
This machine's high load time: 67 microseconds.
This machine's low load time: 64 microseconds.
This test was performed on a system with 2.67-GHz processors, so the real time is acceptable. The difference between the high load time and low load time is within the expected tolerance.
vioperf
The
vioperf
utility tests the performance of the disk input and output (I/O). The utility performs a series of reads and writes.
For more information about this utility, see the Vertica documentation.
Follow these steps:
  1. Issue the following commands on
    each
    data repository node:
    ./vioperf /
    data
    --duration=60sec > /tmp/vioperf.out
    /data
    is the full path of the data directory.
    ./vioperf /
    catalog
    --duration=60sec > /tmp/vioperf.out
    /catalog
    is the full path of the catalog directory.
  2. Verify the Write and Read counter values at least 40 MB/s per core.
    The recommended I/O is 40 MB/s per physical core on each node. For example, the recommended I/O rate for a node with 2 hyper-threaded six-core CPUs (12 physical cores) is 480 MB/s.
    If the
    thread count
    column shows a value of 1, the utility cannot determine the number of cores. Add the following argument to the command to run the utility:
    --thread-count=
    CORES
    Cores
    defines the number of cores in the system as a fixed integer.
Example:
The following example shows the return from this utility for the data directory:
The minimum required I/O is 20 MB/s read and write per physical processor core on each node, in full duplex i.e. reading and writing at this rate simultaneously, concurrently on all nodes of the cluster. The recommended I/O is 40 MB/s per physical core on each node. For example, the I/O rate for a server node with 2 hyper-threaded six-core CPUs is 240 MB/s required minimum, 480 MB/s recommended.
Using direct io (buffer size=1048576, alignment=512) for directory "/drdata"
test | directory | counter name | counter value | counter value (10 sec avg) | counter value/core | counter value/core (10 sec avg) |
thread count
| %CPU | %IO Wait | elapsed time (s)| remaining time (s)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Write
| /drdata | MB/s | 873 | 873 |
54.5625
| 54.5625 | 16 | 29 | 40 | 10 | 5
Write
| /drdata | MB/s | 868 | 865 |
54.25
| 54.0625 | 16 | 28 | 30 | 15 | 0
ReWrite | /drdata | (MB-read+MB-write)/s| 275+275 | 275+275 | 17.1875+17.1875 | 17.1875+17.1875 | 16 | 13 | 21 | 10 | 5
ReWrite | /drdata | (MB-read+MB-write)/s| 242+242 | 178+178 | 15.125+15.125 | 11.125+11.125 | 16 | 7 | 17 | 15 | 0
Read
| /drdata | MB/s | 735 | 735 |
45.9375
| 45.9375 | 16 | 11 | 23 | 10 | 5
Read
| /drdata | MB/s | 786 | 786 |
49.125
| 49.125 | 16 | 26 | 25 | 15 | 0
SkipRead | /drdata | seeks/s | 4511 | 4511 | 281.938 | 281.938 | 16 | 14 | 19 | 10 | 5
SkipRead | /drdata | seeks/s | 4477 | 4407 | 279.812 | 275.438 | 16 | 3 | 15 | 15 | 0
This server has 16 cores. The Read and Write counter values indicate the I/O is greater than 40 MB/s per core.
vnetperf
The
vnetper
utility tests the network performance of the data repository hosts. The utility measures network latency and the throughput for the TCP and UDP protocols.
This utility causes a high network load and affects database performance. Do not run this utility while the database is running.
For more information about this utility, see the Vertica documentation.
Follow these steps:
  1. Log in as a user that has passwordless ssh between the nodes.
  2. Issue the following command on
    one
    of the data repository nodes:
    ./vnetperf --hosts
    DAhost
    ,
    DRhost1
    ,
    DRhost2
    ,
    DRhost3
    > /tmp/vnetperf.out
    Specify the hostname or IP address of the data aggregator host and each data repository host.
  3. Verify that the network performance meets the following requirements:
    • Round-trip time (RTT) latency of 200 microseconds or less
    • Clock skew under 1 second
    • Throughput of 800 MB/s or more
      The utility runs a series of throttled tests. Verify the throughput for the highest speed test.