在GreenPlum中使用gpcheckperf进行性能测试

0    196    2

Tags:

👉 本文共约5298个字,系统预计阅读时间或需20分钟。

简介

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

gpcheckperf 是 Greenplum 数据库自带的性能测试工具,gpcheckperf工具能用来测试主机硬件的基线性能。其结果可以帮助发现硬件问题。它会 执行下列检查:

  • 磁盘I/O测试 – 通过使用操作系统命令dd读写一个大型文件来测量I/O性能。 它报告以兆字节每秒为单位的读写速率。
  • 内存带宽测试 – 使用STREAM基准测量以兆字节每秒为单位的可持续的内存带宽。
  • 网络性能测试 – 运行gpnetbench网络基准程序(也可以选netperf) 来测试网络性能。这种测试可以运行在三种模式中:并行结对测试(-r N)、 串行结对测试(-r n)或者全矩阵测试(-r M)。报告 的最小、最大、平均和中值传输率将以兆字节每秒为单位。

为了从gpcheckperf获得有效的数字,数据库系统必须被停止。即使系统仍在 运行且没有运行查询活动,从gpcheckperf得到的数字可能也不准确。

gpcheckperf要求在参与性能测试的主机之间提前进行访问互信设置。因为工具会调用 gpssh以及gpscp,因此这些工具必须也位于用户的PATH 中。可以个别指定要检查的主机(-h host1 -h host2 …)或者使用 -f hosts_file,其中hosts_file是一个包含要 检查的主机列表的文本文件。如果用户有多个子网,为每个子网都创建一个单独的主机文件,这样用户可以单独测试 子网。

gpcheckperf默认会运行磁盘I/O测试、内存测试和串行结对网络性能测试。对于磁盘I/O 测试,用户必须使用-d选项指定要测试的文件系统。下面的命令在subnet_1_hosts 文件中列出的主机上测试磁盘I/O和内存带宽:

-r选项选择要运行的测试:磁盘I/O(d)、内存带宽(s)、 网络并行结对(N)、网络串行结对测试(n)、网络全矩阵测试(M)。 每次执行只能选择一种网络模式。

一般用来测试IO性能,相比于FIO 测试工具,gpcheckperf 工具的结果更为直观

命令

常用参数

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

  • 磁盘I/O测试(dd测试) — 要测试逻辑磁盘或文件系统的顺序吞吐性能, 该工具使用dd命令,该命令是一个标准的UNIX工具。它记录花费多长时间在磁盘上读写一个 大文件,并以兆字节(MB)每秒(MB/s)为单位计算磁盘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中。

一台GreenPlum服务器的内存为8g,则:

由于GreenPlum的数据块大小为32k,所以bs设置为32k,产生的文件:/tmp/gpcheckperf_gpadmin/ddfile大概为16G,为内存的2倍。

选项

-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端口号。主机文件的语法是每行一台主机, 如下所示:

-f hostfile_gpchecknet

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

-h hostname

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

--netperf

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

-r ds{n|N|M}

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

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复