gpcheckperf

验证指定主机的基准硬件性能。

概要

  1. gpcheckperf -d test_directory [-d test_directory ...]
  2. {-f hostfile_gpcheckperf | - h hostname [-h hostname ...]}
  3. [-r ds] [-B block_size] [-S file_size] [-D] [-v|-V]
  4. gpcheckperf -d temp_directory
  5. {-f hostfile_gpchecknet | - h hostname [-h hostname ...]}
  6. [ -r n|N|M [--duration time] [--netperf] ] [-D] [-v | -V]
  7. gpcheckperf -?
  8. gpcheckperf --version

描述

gpcheckperf工具在指定的主机上启动会话并运行以下性能测试:

  • 磁盘I/O测试(dd测试) — 要测试逻辑磁盘或文件系统的顺序吞吐性能, 该工具使用dd命令,该命令是一个标准的UNIX工具。它记录花费多长时间在磁盘上读写一个 大文件,并以兆字节(MB)每秒为单位计算磁盘I/O性能。默认情况下,用于测试的文件尺寸按照主机 上的总随机访问内存(RAM)的两倍计算。这确保了测试是真正地测试磁盘I/O而不是使用内存缓存。
  • 内存带宽测试(流) — 为了测试内存带宽,该工具使用STREAM基准程序来 测量可持续的内存带宽(以MB/s为单位)。这测试用户的系统在不涉及CPU计算性能情况下是否受系统 内存带宽的限制。在数据集较大的应用程序中(如在Greenplum数据库中),低内存带宽是一个主要的 性能问题。如果内存带宽明显低于CPU的理论带宽,则会导致CPU花费大量的时间等待数据从系统内存到达。
  • 网络性能测试(gpnetbench*) — 为了测试网络性能(以及Greenplum 数据库Interconnect的性能),该工具运行一种网络基准测试程序,该程序当前主机发送5秒钟的数据流 到测试中包含的每台远程主机。数据被并行传输到每台远程主机,并以兆字节(MB)每秒报告最小、最大、 平均和中位网络传输速率。如果汇总的传输速率比预期慢(小于100MB/s),则可以使用-r n 选项串行地运行该网络测试以获取每台主机的结果。要运行全矩阵带宽测试,用户可以指定-r M, 这将导致每台主机都发送和接收来自指定的每台其他主机的数据。该测试最适用于验证交换结构是否可以承受全矩阵负载。

为了指定要测试的主机,请使用-f选项指定包含主机名列表的文件,或使用 -h选项在命令行上指名单个主机名。如果运行网络性能测试,主机文件中 的所有项必须是同一子网内的网络接口。如果用户的Segment主机具有在不同子网上配置的多个 网络接口,请为每个子网运行一次网络测试。

用户还必须指定至少一个测试目录(使用-d)。运行gpcheckperf 的用户必须具有对所有远程主机上指定测试目录的写入权限。对于磁盘I/O测试,测试目录应与用户的 Segment数据目录(主Segment和/或镜像Segment)相对应。对于内存带宽和网络测试,测试程序文件 需要临时目录。

在使用gpcheckperf之前,用户必须在涉及性能测试的主机之间建立可信的主机设置。 用户可以使用gpssh-exkeys工具更新已知主机文件并在主机之间交换公钥 (如果尚未这样做的话)。请注意,gpcheckperf调用gpssh 和gpscp,这些Greenplum工具也必须在$PATH中。

选项

-B block_size

指定用于磁盘I/O测试的块大小(以KB或MB为单位)。缺省值是32KB,与Greenplum数据库页面大小相同。 最大块大小是1 MB。

-d test_directory

对于磁盘I/O测试,指定要测试的文件系统目录位置。用户必须具有对性能测试中涉及的所有主机上 测试目录的写入权限。用户可以多次使用-d选项指定多个测试目录 (例如,测试主数据目录和镜像数据目录的磁盘I/O)。

-d temp_directory

对于网络和流测试,指定单个目录,测试程序文件在测试期间将被复制到该目录。用户必须具有 对测试中涉及的所有主机上该目录的写入权限。

-D(显示每台主机的结果)

报告每个主机的磁盘I/O测试的性能结果。缺省情况下,仅报告具有最低和最高性能的主机的结果, 以及所有主机的总体和平均性能。

--duration time

以秒(s)、分钟(m)、小时(h)或天数(d)指定网络测试的持续时间。默认值是15秒。

-f hostfile_gpcheckperf

对于磁盘I/O和流测试,请指定一个包含将参与性能测试的主机名的文件名称。主机名是必需的, 用户可以选择指定每个主机的后补用户名和/或SSH端口号。主机文件的语法是每行一台主机, 如下所示:

  1. [username@]hostname[:ssh_port]

-f hostfile_gpchecknet

对于网络性能测试,主机文件中的所有项都必须是同一子网内的主机地址。如果用户的Segment 主机在不同子网上配置有多个网络接口,请为每个子网运行一次网络测试。例如(包含互连子网1 的Segment主机地址名的主机文件):

  1. sdw1-1
  2. sdw2-1
  3. sdw3-1

-h hostname

指定将参与性能测试的单个主机名(或主机地址)。用户可以多次使用-h 选项来指定多个主机名。

--netperf

指定应该用netperf二进制文件来执行网络测试,而不是Greenplum网络测试。 要使用此选项,用户必须从http://www.netperf.org下载 netperf并且安装到所有Greenplum主机(Master和Segment)的 $GPHOME/bin/lib目录中。

-r ds{n|N|M}

指定要运行的性能测试,默认是dsn:

  • 磁盘I/O测试(d)
  • 流测试(s)
  • 网络性能测试,串行(n)、 并行(N)或全矩阵(M)模式。 可选的--duration选项指定了运行网络测试的时间 (以秒为单位)。要使用并行(N)模式,用户必须在 偶数台主机上运行测试。

    如果用户宁愿使用netperfnetperf(http://www.netperf.org)而不是Greenplum网络测试,用户必须下载它并安装到所有Greenplum主机 (Master和Segment)的$GPHOME/bin/lib目录中。 然后,用户可以指定可选的--netperf选项来使用 netperf二进制文件而不是默认的gpnetbench*工具。

-S file_size

指定用于-d所指定的所有目录的磁盘I/O测试的总文件尺寸。 file_size应该等于主机上总RAM的两倍。如果未指定,则默认值是 在执行gpcheckperf的主机上的总RAM的两倍,这确保了测试是真正地 测试磁盘I/O而不是使用内存缓存。用户可以以KB、MB或GB为单位指定尺寸。

-v(详细模式)| -V(非常详细模式)

详细(Verbose)模式显示性能测试运行时的进度和状态信息。非常详细(Very Verbose) 模式显示该工具生成的所有输出消息。

--version

显示该工具的版本。

-?(帮助)

显示在线帮助。

示例

使用/data1和/data2作为测试目录在文件 host_file中的所有主机上运行磁盘I/O和内存带宽测试:

  1. $ gpcheckperf -f hostfile_gpcheckperf -d /data1 -d /data2 -r ds

在名为sdw1和sdw2 的主机上只使用测试目录 /data1运行磁盘I/O测试。显示单个主机结果并以详细模式运行:

  1. $ gpcheckperf -h sdw1 -h sdw2 -d /data1 -r d -D -v

使用测试目录/tmp,运行并行网络测试,其中hostfile_gpcheck_ic* 指定同一Interconnect子网内的所有网络接口的主机地址名称:

  1. $ gpcheckperf -f hostfile_gpchecknet_ic1 -r N -d /tmp
  2. $ gpcheckperf -f hostfile_gpchecknet_ic2 -r N -d /tmp

运行与上面相同的测试,但使用netperf而不是Greenplum网络测试 (注意,netperf必须安装在所有Greenplum主机上的 $GPHOME/bin/lib中):

  1. $ gpcheckperf -f hostfile_gpchecknet_ic1 -r N --netperf -d /tmp
  2. $ gpcheckperf -f hostfile_gpchecknet_ic2 -r N --netperf -d /tmp

另见

gpsshgpscpgpcheck