greenplum gpcheckperf 命令(GP集群壓力測試)


目錄

概述

1、greenplum  gpcheckperf  命令參數說明

2、gpcheckperf  參數詳解

3 gpcheckperf 測試腳本

4、gpcheckperf  測試結果

5、查看產生的文件

6、測試gpsdw2和gpsdw1再次測試

7、測試結果分析


概述

1、在以下測試時要在集群空閑的時間進行,測試的過程中會占用大量的資源

2、需要准備大約250G大小的空間磁盤,在測試過程中會生成文件 

3、測試過程中在DISK WRITE TEST,DISK READ TEST這兩個階段比較耗時

4、測試完了會把gpcheckperf_$USER目錄刪掉

1、greenplum  gpcheckperf  命令參數說明

以下列出了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

 

2、gpcheckperf  參數詳解

 

 

-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

顯示該工具的版本

-? (幫助)

顯示在線幫助

3 gpcheckperf 測試腳本

在以下腳本中可以看出列出了測試開始時間與結束時間,測試的機器是gpsdw1,gpsdw2,gpsdw3,測試存放臨時目錄為/greenplum/soft/,每個節點大概需要空間250G左右,請做好空間的准備

 

$ cat seg_host

gpsdw1
gpsdw2

gpsdw3

 

$ cat gpcheckperf-test.sh

#!bin/bash
echo "--------- start ----------- "
a=`date + "%Y-%m-%d %H:%M:%S"`
echo $a
gpcheckperf -f seg_host -d /greenplum/soft/ -v
echo "------------- end ----------"
b=`date + "%Y-%m-%d %H:%M:%S"`
echo $b

4、gpcheckperf  測試結果

 

--------- start -----------

2019-05-31 01:13:25
[ Info] sh -c 'cat /proc/meminfo | grep MemTotal'

MemTotal: 131782212 kB

/greenplum/soft/greenplum-db/./bin/gpcheckperf -f seg_host -d /greenplum/soft/ -v

--------------------

SETUP

--------------------

[Info] verify python interpreter exists

[Info] /greenplum/soft/greenplum-db/./bin/gpssh -f seg_host 'python -c print'

[Info] making gpcheckperf directory on all hosts ...

[Info] /greenplum/soft/greenplum-db/./bin/gpssh -f seg_host 'rm -rf /greenplum/soft/gpcheckperf_$USER ; mkdir -p /greenplum/soft/gpcheckperf_$USER'

[Info] copy local /greenplum/soft/greenplum-db-5.11.1/bin/lib/multidd to remote /greenplum/soft/gpcheckperf_$USER/multidd

[Info] /greenplum/soft/greenplum-db/./bin/gpscp -f seg_host /greenplum/soft/greenplum-db-5.11.1/bin/lib/multidd =:/greenplum/soft/gpcheckperf_$USER/multidd

[Info] /greenplum/soft/greenplum-db/./bin/gpssh -f seg_host 'chmod a+rx /greenplum/soft/gpcheckperf_$USER/multidd'

--------------------

-- DISK WRITE TEST

--------------------

--------------------

-- DISK READ TEST

--------------------

--------------------

-- STREAM TEST

--------------------

[Info] copy local /greenplum/soft/greenplum-db-5.11.1/bin/lib/stream to remote /greenplum/soft/gpcheckperf_$USER/stream

[Info] /greenplum/soft/greenplum-db/./bin/gpscp -f seg_host /greenplum/soft/greenplum-db-5.11.1/bin/lib/stream =:/greenplum/soft/gpcheckperf_$USER/stream

[Info] /greenplum/soft/greenplum-db/./bin/gpssh -f seg_host 'chmod a+rx /greenplum/soft/gpcheckperf_$USER/stream'

[Info] /greenplum/soft/greenplum-db/./bin/gpssh -f seg_host /greenplum/soft/gpcheckperf_$USER/stream

-------------------

-- NETPERF TEST

-------------------

[Info] copy local /greenplum/soft/greenplum-db-5.11.1/bin/lib/gpnetbenchServer to remote /greenplum/soft/gpcheckperf_$USER/gpnetbenchServer

[Info] /greenplum/soft/greenplum-db/./bin/gpscp -f seg_host /greenplum/soft/greenplum-db-5.11.1/bin/lib/gpnetbenchServer =:/greenplum/soft/gpcheckperf_$USER/gpnetbenchServer

[Info] /greenplum/soft/greenplum-db/./bin/gpssh -f seg_host 'chmod a+rx /greenplum/soft/gpcheckperf_$USER/gpnetbenchServer'

[Info] /greenplum/soft/greenplum-db/./bin/gpssh -f seg_host 'F=gpnetbenchServer && (pkill $F || pkill -f $F || killall -9 $F) > /dev/null 2>&1 || true'

[Info] /greenplum/soft/greenplum-db/./bin/gpssh -f seg_host '/greenplum/soft/gpcheckperf_$USER/gpnetbenchServer -p 23000 > /dev/null 2>&1'

[Info] copy local /greenplum/soft/greenplum-db-5.11.1/bin/lib/gpnetbenchClient to remote /greenplum/soft/gpcheckperf_$USER/gpnetbenchClient

[Info] /greenplum/soft/greenplum-db/./bin/gpscp -f seg_host /greenplum/soft/greenplum-db-5.11.1/bin/lib/gpnetbenchClient =:/greenplum/soft/gpcheckperf_$USER/gpnetbenchClient

[Info] /greenplum/soft/greenplum-db/./bin/gpssh -f seg_host 'chmod a+rx /greenplum/soft/gpcheckperf_$USER/gpnetbenchClient'

[Info] ssh -o 'BatchMode yes' -o 'StrictHostKeyChecking no' gpsdw1 '/greenplum/soft/gpcheckperf_$USER/gpnetbenchClient -H gpsdw2 -p 23000 -t TCP_STREAM -l 15 -f M -P 0 '

[Info] ssh -o 'BatchMode yes' -o 'StrictHostKeyChecking no' gpsdw3 '/greenplum/soft/gpcheckperf_$USER/gpnetbenchClient -H gpsdw1 -p 23000 -t TCP_STREAM -l 15 -f M -P 0 '

[Info] Connected to server

0 0 32768 14.24 1075.19

[Info] gpsdw1 -> gpsdw2 : ['0', '0', '32768', '14.24', '1075.19']

[Info] Connected to server

0 0 32768 14.26 1047.93

[Info] gpsdw3 -> gpsdw1 : ['0', '0', '32768', '14.26', '1047.93']

[Info] ssh -o 'BatchMode yes' -o 'StrictHostKeyChecking no' gpsdw2 '/greenplum/soft/gpcheckperf_$USER/gpnetbenchClient -H gpsdw1 -p 23000 -t TCP_STREAM -l 15 -f M -P 0 '

[Info] ssh -o 'BatchMode yes' -o 'StrictHostKeyChecking no' gpsdw1 '/greenplum/soft/gpcheckperf_$USER/gpnetbenchClient -H gpsdw3 -p 23000 -t TCP_STREAM -l 15 -f M -P 0 '

[Info] Connected to server

0 0 32768 14.97 999.18

[Info] gpsdw2 -> gpsdw1 : ['0', '0', '32768', '14.97', '999.18']

[Info] Connected to server

0 0 32768 14.86 1113.28

[Info] gpsdw1 -> gpsdw3 : ['0', '0', '32768', '14.86', '1113.28']

--------------------

TEARDOWN

--------------------

[Info] /greenplum/soft/greenplum-db/./bin/gpssh -f seg_host 'rm -rf /greenplum/soft/gpcheckperf_$USER'

[Info] /greenplum/soft/greenplum-db/./bin/gpssh -f seg_host 'F=gpnetbenchServer && (pkill $F || pkill -f $F || killall -9 $F) > /dev/null 2>&1 || true'

====================

== RESULT

====================

disk write avg time (sec): 780.88

disk write tot bytes: 809669885952

disk write tot bandwidth (MB/s): 988.89

disk write min bandwidth (MB/s): 326.89 [gpsdw2]

disk write max bandwidth (MB/s): 332.78 [gpsdw1]

disk read avg time (sec): 499.80

disk read tot bytes: 809669885952

disk read tot bandwidth (MB/s): 1545.86

disk read min bandwidth (MB/s): 500.90 [gpsdw1]

disk read max bandwidth (MB/s): 531.78 [gpsdw3]

stream tot bandwidth (MB/s): 36280.66

stream min bandwidth (MB/s): 8890.95 [gpsdw2]

stream max bandwidth (MB/s): 18413.74 [gpsdw3]

Netperf bisection bandwidth test

gpsdw1 -> gpsdw2 = 1075.190000

gpsdw3 -> gpsdw1 = 1047.930000

gpsdw2 -> gpsdw1 = 999.180000

gpsdw1 -> gpsdw3 = 1113.280000

Summary:

sum = 4235.58 MB/sec

min = 999.18 MB/sec

max = 1113.28 MB/sec

avg = 1058.89 MB/sec

median = 1075.19 MB/sec

[Warning] connection between gpsdw2 and gpsdw1 is no good

------------- end ----------

2019-05-31 01:36:57

5、查看產生的文件

 

$ ll -h

total 245G
-rw-rw-r-- 1 gpadmin gpadmin 245G May 21 13:07 ddfile

-rwxr-xr-x 1 gpadmin gpadmin 3.8K May 21 13:03 multidd

在以上可以看出生成了252GB的空文件ddfile,multidd只是greenplum測試的腳本

6、測試gpsdw2和gpsdw1再次測試

$ gpcheckperf -d  /greenplum/soft/ -r -N -h gpsdw1 -h gpsdw2
 

 

7、測試結果分析

 

 

1、在以上的時間可以看出整個的測試大概用23分鍾左右
2、在以上可以看出磁盤的寫的速度總共是988.89MB/s,其中最小的是在gpsdw2機器上是326.89MB/s,最大的是在gpsdw1機器上是332.78MB/s

3、在以上可以看出磁盤的讀的速度總共是1545.86MB/s,其中最小的是在gpsdw1機器上是500.90MB/s,最大的是在gpsdw3機器上是531.78MB/s

4、在以上可以看出網卡速度總共是36280.66MB/s,其中最小的是在gpsdw2機器上是8890.95MB/s,最大的是在gpsdw3機器上是18413.74MB/s

5、測試的機器的方向是:

gpsdw1 -> gpsdw2 = 1075.190000

gpsdw3 -> gpsdw1 = 1047.930000

gpsdw2 -> gpsdw1 = 999.180000

gpsdw1 -> gpsdw3 = 1113.280000

6、統計記過如下:

sum = 4235.58 MB/sec

min = 999.18 MB/sec

max = 1113.28 MB/sec

avg = 1058.89 MB/sec

median = 1075.19 MB/sec

7、在測試時出現了一個警告connection between gpsdw2 and gpsdw1 is no good,說明gpsdw2 和gpsdw1之間的鏈接不是很好,這項需要檢查

8、等測試完程序會自動的把數據和gpcheckperf_$USER目錄刪掉

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM