AnalyticDB PostgreSQL版支持通過PTS進行性能測試,本文介紹如何通過PTS對AnalyticDB PostgreSQL版實例進行性能測試。

背景信息

性能測試PTS(Performance Testing Service)是一款簡單易用,具備強大的分布式壓測能力的SaaS壓測平臺。PTS支持按需發起百萬并發、千萬TPS流量的壓測任務,100%兼容JMeter,提供場景編排、API調試、流量定制、流量錄制等功能,可快速創建業務壓測腳本,精準模擬不同量級用戶訪問業務系統,幫助業務快速提升系統性能和穩定性。

費用說明

  • PTS在使用過程中會產生費用,具體信息,請參見計費概述。
  • AnalyticDB PostgreSQL版實例的費用,請參見產品定價。

前提條件

  • 開通性能測試PTS服務,具體信息,請參見開通方式。
  • 已創建AnalyticDB PostgreSQL版實例,創建方式,請參見創建實例

    本次最佳實踐中使用的實例的資源類型為存儲彈性模式,引擎版本為6.0。

  • AnalyticDB PostgreSQL版實例已加載樣本數據庫,加載方式,請參見管理樣本數據集。

    樣本數據集的具體信息以及示例查詢語句,請參見數據集信息和示例查詢。

  • AnalyticDB PostgreSQL版的白名單已添加PTS所在的網段。

    本次示例中,AnalyticDB PostgreSQL版與PTS在同一VPC中,您可以將VPC網段添加至白名單中,設置白名單的操作,請參見設置白名單。

性能測試

OLAP場景壓力測試

  1. 登錄性能測試PTS控制臺。
  2. 在左側導航欄中選擇性能測試 > 創建場景。
  3. 創建場景頁面,單擊PTS壓測。
  4. 場景名右側輸入場景名稱。
  5. 場景配置頁簽,進行以下配置:
    1. 單擊刪除圖表圖標,刪除默認的壓測API。
    2. 將鼠標移動到添加壓測節點右側的下拉圖表圖標上,單擊JDBC壓測節點
    3. 單擊新建的壓測API右側的折疊圖表圖標,配置基本請求信息。
      基本請求信息
      參數說明
      API名稱自定義API名稱。
      數據庫類型選擇PostgreSQL。
      數據庫URL格式為{HOSTNAME}:{PORT}/{DBNAME},獲取{HOSTNAME}:{PORT}的方式如下:
      1. 登錄云原生數據倉庫AnalyticDB PostgreSQL版控制臺
      2. 在控制臺左上角,選擇實例所在地域。
      3. 找到目標實例,單擊實例ID。
      4. 基本信息頁面的數據庫連接信息,即可獲取連接地址和端口。連接地址

        您可以根據需求選擇內網地址或外網地址。

      {DBNAME}adb_sampledata_tpch。

      數據庫URL示例如下:gp-bp1vgqague4lt****-master.gpdb.rds.aliyuncs.com:5432/adb_sampledata_tpch

      用戶名AnalyticDB PostgreSQL版示例的數據庫賬號和密碼,獲取方式請參見創建數據庫賬號
      密碼
      SQL待執行的SQL語句,本次示例使用了TPC-H的22條查詢語句,查詢語句具體內容,請參見示例查詢。
      說明 每個壓測節點僅包含一條查詢語句。
      超時時間接口的響應超時時間,本次示例取值為50000。
      limit查詢語句的最大讀取行數,最大值為1000000,本次示例取值為1000。
    4. 單擊連接池配置,配置如下信息。
      連接池配置
      參數說明
      初始化連接數初始化時建立的物理連接數量,本次示例取值為1。
      獲取連接最大等待時間從連接池中獲取空閑連接的等待事件,單位為毫秒,本次示例取值為4000。
      最大連接數最大活躍連接數量和最小活躍連接數量,用以匹配單并發與多并發的多種測試場景。本次示例最大連接數為15,最小連接數為1。
      最小連接數
    5. 重復步驟b到步驟d,分別為22條查詢語句各創建一個壓測節點。
  6. 單擊施壓配置頁簽,配置壓測模式配置。
    壓測模式配置
    參數說明
    壓力來源選擇PTS的網絡類型,本次示例為阿里云VPC內網。
    VPC信息選擇PTS的VPC、安全組以及vSwitch。
    說明
    • PTS的VPC和vSwitch需要與AnalyticDB PostgreSQL版實例的VPC和vSwitch一致。
    • 如需新建安全組,請參見創建安全組
    壓力模式選擇并發模式(虛擬用戶模式)
    遞增模式選擇自動遞增
    最大并發設置為您希望達到的最大并發,本次示例為15。
    遞增百分比每次增加并發時的增幅,本次示例為20%。
    單量級持續時長每個并發數的測試時長,本次示例為20分鐘。
    壓測總時長總測試時長,本次示例為100分鐘。
    指定IP數指定發起壓測流量的IP地址數量,即施壓機器的數量。本次示例為1。
  7. 為防止正式壓測時由于人為配置錯誤導致壓測失敗,可以單擊場景調試對測試整個串聯鏈路中各個查詢的連通性。
    如果出現異常,則表示壓測API配置可能出錯,建議檢查并進行修改。
  8. 場景調試通過后,單擊保存去壓測。

OLAP場景壓測結果

  1. 性能測試PTS控制臺左側導航欄中,選擇性能測試 > 報告列表。
  2. 單擊目標PTS測試右側操作列下的查看報告。
  3. 在報告頁面,您可以查看成功率、平均RT、TPS異常數總請求數
    壓測結果-概覽
    說明
    • 如果總請求數等信息均為0,表示壓測任務運行失敗,可以單擊頁面上方的查看采樣日志,然后單擊查看詳情,在Error信息中查看報錯信息,進行問題排查。
    • 如果成功率不是100%可以在明細頁簽中查看是否有錯誤信息。
  4. 單擊明細頁簽,可以查看整個測試鏈路中各個API的詳細性能數據。
    壓測結果-明細-1壓測結果-明細-2
  5. 切換到AnalyticDB PostgreSQL版控制臺,查看實例監控中的實例活躍連接數項目,驗證PTS壓測計劃是否生效,查看方法,請參見實例監控。
    實例監控

    可以看到實例的活躍連接如預期計劃自動遞增(由3并發逐步增加至15并發)。

點查詢場景壓力測試

  1. 登錄性能測試PTS控制臺。
  2. 在左側導航欄中選擇性能測試 > 創建場景
  3. 創建場景頁面,單擊PTS壓測。
  4. 場景名右側輸入場景名稱。
  5. 場景配置頁簽,進行以下配置:
    1. 單擊刪除圖表圖標,刪除默認的壓測API。
    2. 將鼠標移動到添加壓測節點右側的下拉圖表圖標上,單擊JDBC壓測節點。
    3. 單擊新建的壓測API右側的折疊圖表圖標,配置基本請求信息。
      參數說明
      API名稱自定義API名稱。
      數據庫類型選擇PostgreSQL。
      數據庫URL格式為{HOSTNAME}:{PORT}/{DBNAME},獲取{HOSTNAME}:{PORT}的方式如下:
      1. 登錄云原生數據倉庫AnalyticDB PostgreSQL版控制臺
      2. 在控制臺左上角,選擇實例所在地域。
      3. 找到目標實例,單擊實例ID。
      4. 基本信息頁面的數據庫連接信息,即可獲取連接地址和端口。連接地址

        您可以根據需求選擇內網地址或外網地址。

      {DBNAME}adb_sampledata_tpch。

      數據庫URL示例如下:gp-bp1vgqague4lt****-master.gpdb.rds.aliyuncs.com:5432/adb_sampledata_tpch。

      用戶名AnalyticDB PostgreSQL版示例的數據庫賬號和密碼,獲取方式請參見創建數據庫賬號。
      密碼
      SQL待執行的SQL語句,本次示例使用如下語句:
      SELECT
          O_ORDERKEY,
          O_CUSTKEY,
          O_ORDERSTATUS,
          O_TOTALPRICE,
          O_ORDERDATE,
          O_ORDERPRIORITY,
          O_CLERK,
          O_SHIPPRIORITY,
          O_COMMENT
      FROM
          public.orders_row
      WHERE
          o_orderkey = ?;
      超時時間接口的響應超時時間,本次示例取值為50000。
      limit查詢語句的最大讀取行數,最大值為1000000,本次示例取值為1000。
    4. 單擊占位符,配置如下信息。
      參數說明
      Type本次示例中占位符Type使用bigint。
      ValuePTS支持若干系統函數,本次示例使用random函數,即Value值為${sys.random(1,99999999)}。
    5. 單擊連接池配置,配置如下信息。
      參數說明
      初始化連接數初始化時建立的物理連接數量,本次示例取值為1。
      獲取連接最大等待時間從連接池中獲取空閑連接的等待事件,單位為毫秒,本次示例取值為4000。
      最大連接數最大活躍連接數量和最小活躍連接數量,用以匹配單并發與多并發的多種測試場景。本次示例最大連接數為15,最小連接數為1。
      最小連接數
  6. 單擊施壓配置頁簽,配置壓測模式配置。
    參數說明
    壓力來源選擇PTS的網絡類型,本次示例為阿里云VPC內網。

    發起阿里云VPC內網性能測試的更多介紹,請參見如何發起阿里云VPC內網性能測試

    VPC信息選擇PTS的VPC、安全組以及vSwitch。
    說明
    • PTS的VPC和vSwitch需要與AnalyticDB PostgreSQL版實例的VPC和vSwitch一致。
    • 如需新建安全組,請參見創建安全組。
    壓力模式選擇并發模式(虛擬用戶模式)。
    遞增模式選擇自動遞增
    最大并發設置為您希望達到的最大并發,本次示例為50。
    遞增百分比為保證并發數始終為50,本次示例為100%。
    單量級持續時長為保證并發數始終為50,本次示例為1分鐘。
    壓測總時長總測試時長,本次示例為10分鐘。
    指定IP數指定發起壓測流量的IP地址數量,即施壓機器的數量。本次示例固定為1。
  7. 為防止正式壓測時由于人為配置錯誤導致壓測失敗,可以單擊場景調試對測試整個串聯鏈路中各個查詢的連通性。
    如果出現異常,則表示壓測API配置可能出錯,建議檢查并進行修改。
  8. 場景調試通過后,單擊保存去壓測。

點查詢場景壓測結果

  1. 性能測試PTS控制臺左側導航欄中,選擇性能測試 > 報告列表。
  2. 單擊目標PTS測試右側操作列下的查看報告。
  3. 報告示例如下:
    點查詢報告
  4. 切換到AnalyticDB PostgreSQL版控制臺,查看節點監控中CPU使用率項目,查看方法,請參見節點監控
    PTS壓測-節點監控

    通過上述信息可以看到計算節點的CPU使用率達到了較高的水位。

  5. 切換到AnalyticDB PostgreSQL版控制臺,查看實例監控中的實例活躍連接數項目,查看方法,請參見實例監控。
    PTS-節點監控

    可以看到實例的活躍連接數達到了PTS設置的50并發。

PTS與PGBench的對比

  • PTS支持各種類型的數據庫測試,并發可動態調整,發起壓測的機器數量可自由設置,壓測可以不局限于一臺機器。
  • PTS支持云內網壓測,無需單獨購買ECS實例作為壓測發起機器。
  • PTS配置簡單,無需進行人工腳本書寫,并且支持系統函數。
  • PTS支持正式壓測前的場景測試。
  • PTS支持多樣化的場景設置,例如超時時間、連接池設置等。
  • PTS可提供全面的壓測可視化結果,并詳細記錄了測試過程中的重要數據。