一 简介
gpcheckperf 是一款集成到 GreenPlum 数据库中的程序,可以用于测试本机或者指定机器的磁盘IO,内存带宽,网络等主机的基准硬件性能。
二 说明
gpcheckperf工具在指定的主机上启动会话并运行以下性能测试:
磁盘I/O测试 — 要测试逻辑磁盘或文件系统的顺序吞吐性能,该工具使用dd命令,它记录花费多长时间在磁盘上读写一个大文件,并以兆字节(MB)每秒为单位计算磁盘I/O性能。
默认情况下,为了测试能够充分利用磁盘I/O而非使用内存缓存,建议用于测试的文件大小是主机内存的两倍。
内存带宽测试 — 该工具使用STREAM基准程序来测量可持续的内存带宽(以MB/s为单位)。
在数据集较大的应用程序中(如在Greenplum数据库中),低内存带宽是一个主要的性能问题。如果内存带宽明显低于CPU的理论带宽,则会导致CPU花费大量的时间等待数据从系统内存到达。
网络性能测试 — 该工具运行一种网络基准测试程序,该程序当前主机发送5秒钟的数据流到测试中包含的每台远程主机。数据被并行传输到每台远程主机,并以兆字节(MB)每秒报告最小、最大、平均和中位网络传输速率。如果汇总的传输速率比预期慢(小于100MB/s),则可以使用-r n选项串行地运行该网络测试以获取每台主机的结果。要运行全矩阵带宽测试,用户可以指定-r M,这将导致每台主机都发送和接收来自指定的每台其他主机的数据。该测试最适用于验证交换结构是否可以承受全矩阵负载。
常用参数
代码语言:javascript复制-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)模式,用户必须在偶数台主机上运行测试。
-S file_size
指定 I/O测试的总文件尺寸。file_size 应该等于主机上总RAM的两倍。如果未指定,则默认值是在执行gpcheckperf的主机上的总RAM的两倍,这确保了测试是真正地测试磁盘I/O而不是使用内存缓存。用户可以以KB、MB或GB为单位指定尺寸。
一般用来测试IO性能,相比于FIO 测试工具,gpcheckperf 工具的结果更为直观
具体使用
具体安装请参考 greenplum 的安装方法,不过需要注意的是,一定要确保测试机器 到目标机器的ssh 可以免密连通,而且 需要 source greenplum_path.sh 设置变量。
- 加载配置文件 source greenplum_path.sh
- 在目标机器上创建测试目录,并且测试账号有该目录的读写权限
mkdir /u02/gpcheckperf/testdir
- 执行测试命令 -h 主机ip ,-f 需要指定机器列表
gpcheckperf -h 127.0.0.1 -d /u02/gpcheckperf/testdir -B 16k -r ds -S 5Gb --duration 30s
gpcheckperf -f host.list -d /u02/gpcheckperf/testdir -B 16k -r ds -S 5Gb --duration 30s
比如 host.list
代码语言:javascript复制172.10.20.12
172.10.20.13
172.10.20.11
在目录/gpdata 文件夹下测试 5Gb 的写入量,持续时间为30s
可以看到写入和读取,内存吞吐量大小的结果,最大值,最小值以及平均值。 该工具相对FIO 输出简单点,但是更加直观的看到磁盘的性能。