Verifies the baseline hardware performance of the specified hosts.
gpcheckperf -d <test_directory> [-d <test_directory> ...]
{-f <hostfile_gpcheckperf> | - h <hostname> [-h hostname ...]}
[-r ds] [-B <block_size>] [-S <file_size>] [--buffer-size <buffer_size>] [-D] [-v|-V]
gpcheckperf -d <temp_directory>
{-f <hostfile_gpchecknet> | - h <hostname> [-h< hostname> ...]}
[ -r n|N|M [--duration <time>] [--netperf] ] [-D] [-v | -V]
gpcheckperf -?
gpcheckperf --version
The gpcheckperf
utility starts a session on the specified hosts and runs the following performance tests:
-r n
option to obtain per-host results. To run a full-matrix bandwidth test, you can specify -r M
which will cause every host to send and receive data from every other host specified. This test is best used to validate if the switch fabric can tolerate a full-matrix workload.To specify the hosts to test, use the -f
option to specify a file containing a list of host names, or use the -h
option to name single host names on the command-line. If running the network performance test, all entries in the host file must be for network interfaces within the same subnet. If your segment hosts have multiple network interfaces configured on different subnets, run the network test once for each subnet.
You must also specify at least one test directory (with -d
). The user who runs gpcheckperf
must have write access to the specified test directories on all remote hosts. For the disk I/O test, the test directories should correspond to your segment data directories (primary and/or mirrors). For the memory bandwidth and network tests, a temporary directory is required for the test program files.
Before using gpcheckperf
, you must have a trusted host setup between the hosts involved in the performance test. You can use the utility gpssh-exkeys
to update the known host files and exchange public keys between hosts if you have not done so already. Note that gpcheckperf
calls to gpssh
and gpsync
, so these Greenplum utilities must also be in your $PATH
.
--buffer-size buffer_size Specifies the size of the send buffer in kilobytes. The default size is 8 kilobytes.
NoteIf you want to compare network performance between Greenplum 6 and Greenplum 7, set
--buffer-size
to 32KB in Greenplum 7 to make it consistent with the default Greenplum 6 buffer size.
-d
option multiple times to specify multiple test directories (for example, to test disk I/O of your primary and mirror data directories).
For the disk I/O and stream tests, specifies the name of a file that contains one host name per host that will participate in the performance test. The host name is required, and you can optionally specify an alternate user name and/or SSH port number per host. The syntax of the host file is one host per line as follows:
[<username>@]<hostname>[:<ssh_port>]
For the network performance test, all entries in the host file must be for host addresses within the same subnet. If your segment hosts have multiple network interfaces configured on different subnets, run the network test once for each subnet. For example (a host file containing segment host address names for interconnect subnet 1):
sdw1-1
sdw2-1
sdw3-1
-h
option multiple times to specify multiple host names.
netperf
binary should be used to perform the network test instead of the Greenplum network test. To use this option, you must download
netperf
from
https://github.com/HewlettPackard/netperf and install it into
$GPHOME/bin/lib
on all Greenplum hosts (coordinator and segments).
Specifies which performance tests to run. The default is dsn
:
d
)s
)n
), parallel (N
), or full-matrix (M
) mode. The optional --duration
option specifies how long (in seconds) to run the network test. To use the parallel (N
) mode, you must run the test on an even number of hosts. netperf
(https://github.com/HewlettPackard/netperf) instead of the Greenplum network test, you can download it and install it into $GPHOME/bin/lib
on all Greenplum hosts (coordinator and segments). You would then specify the optional --netperf
option to use the netperf
binary instead of the default gpnetbench*
utilities.-d
. file_size should equal two times total RAM on the host. If not specified, the default is calculated at two times the total RAM on the host where
gpcheckperf
is run. This ensures that the test is truly testing disk I/O and not using the memory cache. You can specify sizing in KB, MB, or GB.
Run the disk I/O and memory bandwidth tests on all the hosts in the file host_file using the test directory of /data1 and /data2:
$ gpcheckperf -f hostfile_gpcheckperf -d /data1 -d /data2 -r ds
Run only the disk I/O test on the hosts named sdw1 and sdw2using the test directory of /data1. Show individual host results and run in verbose mode:
$ gpcheckperf -h sdw1 -h sdw2 -d /data1 -r d -D -v
Run the parallel network test using the test directory of /tmp, where hostfile_gpcheck_ic* specifies all network interface host address names within the same interconnect subnet:
$ gpcheckperf -f hostfile_gpchecknet_ic1 -r N -d /tmp
$ gpcheckperf -f hostfile_gpchecknet_ic2 -r N -d /tmp
Run the same test as above, but use netperf
instead of the Greenplum network test (note that netperf
must be installed in $GPHOME/bin/lib
on all Greenplum hosts):
$ gpcheckperf -f hostfile_gpchecknet_ic1 -r N --netperf -d /tmp
$ gpcheckperf -f hostfile_gpchecknet_ic2 -r N --netperf -d /tmp