gpcheckperf
验证指定主机的基准硬件性能。
概要
gpcheckperf -d test_directory [-d test_directory ...]
{-f hostfile_gpcheckperf | - h hostname [-h hostname ...]}
[-r ds] [-B block_size] [-S file_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
描述
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端口号。主机文件的语法是每行一台主机,如下所示:
[username@]hostname[:ssh_port]
-f hostfile_gpchecknet
对于网络性能测试,主机文件中的所有项都必须是同一子网内的主机地址。如果用户的Segment主机在不同子网上配置有多个网络接口,请为每个子网运行一次网络测试。例如(包含互连子网1的Segment主机地址名的主机文件):
sdw1-1
sdw2-1
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)模式,用户必须在偶数台主机上运行测试。
如果用户宁愿使用netperf(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和内存带宽测试:
$ gpcheckperf -f hostfile_gpcheckperf -d /data1 -d /data2 -r ds
在名为sdw1和sdw2的主机上只使用测试目录/data1运行磁盘I/O测试。显示单个主机结果并以详细模式运行:
$ gpcheckperf -h sdw1 -h sdw2 -d /data1 -r d -D -v
使用测试目录/tmp运行并行网络测试,其中hostfile_gpcheck_ic*指定同一Interconnect子网内的所有网络接口的主机地址名称:
$ gpcheckperf -f hostfile_gpchecknet_ic1 -r N -d /tmp
$ gpcheckperf -f hostfile_gpchecknet_ic2 -r N -d /tmp
运行与上面相同的测试,但使用netperf而不是Greenplum网络测试(注意, netperf必须安装在所有Greenplum主机上的$GPHOME/bin/lib中):
$ gpcheckperf -f hostfile_gpchecknet_ic1 -r N --netperf -d /tmp
$ gpcheckperf -f hostfile_gpchecknet_ic2 -r N --netperf -d /tmp