使用 pgbench 分析 AlloyDB 執行個體的效能

如要評估基準資料庫的處理量和延遲時間,您可以將 AlloyDB for PostgreSQL 執行個體和 Compute Engine VM 執行個體連線至虛擬私有雲 (VPC) 網路,在 Compute Engine VM 上安裝 pgbench,並對 AlloyDB 執行個體執行效能基準測試。

目標

在本教學課程中,您將瞭解以下內容:

  • 為 AlloyDB 執行個體和 Compute Engine VM 執行個體建立虛擬私有雲網路,以便在執行個體和 VM 之間安全地通訊。
  • 建立 AlloyDB 執行個體和 Compute Engine VM 執行個體,並為這兩個執行個體指派及設定虛擬私有雲網路。
  • 在 Compute Engine VM 執行個體上安裝 pgbench,並對 AlloyDB 執行個體執行該工具,以便對 AlloyDB 執行個體進行效能測試。

費用

本教學課程使用 Google Cloud的計費元件,包括虛擬私有雲網路、AlloyDB 和 Compute Engine。使用 Pricing Calculator,根據預測用量估算費用。

事前準備

  1. 在 Google Cloud 控制台的專案選取器頁面中,選取或建立 Google Cloud 專案。

    前往專案選取器頁面

  2. 請確認您已為 Google Cloud 專案啟用計費功能。瞭解如何確認已啟用專案的計費功能。

  3. 啟用虛擬私有雲網路、AlloyDB 和 Compute Engine API。

    啟用 API

  4. 確認您的使用者帳戶具備 AlloyDB 管理員角色。

    前往 IAM 頁面

建立虛擬私有雲網路

在本節中,您將為 AlloyDB 執行個體和 Compute Engine VM 執行個體建立虛擬私有雲網路,以便在執行個體和 VM 之間安全地傳遞通訊。

  1. 前往 Google Cloud 控制台的「VPC networks」(虛擬私有雲網路) 頁面。

    前往「VPC networks」(VPC 網路) 頁面

  2. 按一下「建立虛擬私有雲網路」。「Create a VPC network」(建立虛擬私有雲網路) 頁面隨即顯示。

  3. 在虛擬私有雲網路的「Name」(名稱) 部分輸入 my-vpc-network。

  4. 在「Subnet creation mode」(子網路建立模式) 部分,選取「Custom」(自訂) 選項。

  5. 點選「新增子網路」。

  6. 在子網路的「Name」(名稱) 中輸入 my-subnet。

  7. 選取子網路的「區域」,並輸入「IP 位址範圍」。

  8. 點選「完成」。

  9. 點選「建立」。

建立 AlloyDB 執行個體

在本節中,您將建立 AlloyDB 執行個體,並為該執行個體指派及設定虛擬私有雲網路。

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集) 頁面

  2. 點選「建立叢集」。

  3. 請按照下列方式設定叢集:

    1. 在「基本資訊」部分的「叢集 ID」欄位中,輸入 my-cluster。

    2. 在「Password」(密碼) 欄位中輸入您想要的密碼。請記下這組密碼,稍後在教學課程中會再次用到。

    3. 在「位置」部分的「區域」欄位中,選取「us-central1 (Iowa)」。

    4. 保留「Database version」(資料庫版本) 欄位的預設值。

    5. 在「網路」選單中,選取「my-vpc-network」。您在「建立虛擬私有雲網路」中建立了這個虛擬私有雲網路。

    6. 由於虛擬私有雲網路尚未初始化私人服務存取權,請按一下「設定連線」。

    7. 在顯示的「Create a private service connection」(建立私人服務連線) 窗格中,執行下列操作:

      1. 選取「使用系統自動分配的 IP 範圍」選項,讓 Google Cloud 在網路中選取自動分配的 IP 範圍。

      2. 按一下「繼續」。

      3. 點選「建立連線」。

  4. 請按照下列方式設定主要執行個體:

    1. 在「Instance ID」(執行個體 ID) 欄位中,輸入主要執行個體的 ID。

    2. 在「可用區可用性」下方,選取下列其中一個選項:

      1. 如要建立具備自動容錯移轉功能的高可用性正式環境執行個體,請選取「Multiple zones (Highly available)」(多可用區 (可用性高))。

      2. 如要建立不需要高可用性的基本執行個體,請選取「Single zone」(單一可用區)。

    3. 選取機型。

  5. 按一下「Create cluster」(建立叢集),即可一併建立叢集和主要執行個體。

  6. 記下「AlloyDB 執行個體」頁面顯示的 AlloyDB 執行個體私人 IP 位址。您需要這個位址,才能驗證 AlloyDB 執行個體與 Compute Engine VM 執行個體之間的整合。

建立 Compute Engine VM 執行個體

在本節中,您將建立 Compute Engine VM 執行個體,並為該執行個體指派及設定虛擬私有雲網路。

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。

    前往 VM 執行個體頁面

  2. 點選「建立執行個體」。

  3. 在「Create an instance」(建立執行個體) 頁面的「Name」(名稱) 欄位中,輸入您要建立的 Compute Engine VM 執行個體專屬 ID。在本教學課程中,請在欄位中輸入 my-compute-engine-vm-instance。

  4. 在頁面的「存取權範圍」部分,選取「允許所有 Cloud API 的完整存取權」選項。

  5. 展開「Advanced options」(進階選項),然後完成下列步驟:

    1. 按一下「網路」子分頁。

    2. 按一下「新增網路介面」。

    3. 在「網路」選單中,選取「my-vpc-network」。您在「建立虛擬私有雲網路」中建立了這個虛擬私有雲網路。

    4. 點按「Done」(完成)。頁面的「網路介面」部分會顯示兩個虛擬私有雲網路:default 和 my-vpc-network

  6. 點選「 刪除」,刪除「default」虛擬私有雲網路。

    刪除 default 虛擬私有雲網路,即可強制 Compute Engine VM 執行個體使用您在本教學課程中建立的虛擬私有雲網路。

  7. 點選「建立」。

    Compute Engine VM 執行個體會在幾秒內建立完畢。完成後,執行個體會顯示在「VM 執行個體」頁面,狀態為「執行中」 (以勾號表示)。

驗證整合

在本節中,您會在 Compute Engine VM 執行個體上安裝 pgbench,並對 AlloyDB 執行個體執行該工具,以便對 AlloyDB 執行個體進行效能測試。

  1. 連線至 Compute Engine VM 執行個體。請按一下 VM 執行個體右側的「SSH」選單,然後選取「在瀏覽器視窗中開啟」。

  2. 在 Compute Engine VM 執行個體上,安裝 PostgreSQL 的 Contributed Extensions and Additions 套件。

    sudo apt-get -y install postgresql-contrib
  3. 在 AlloyDB for PostgreSQL 執行個體上,為 pgbench 初始化資料庫。例如,使用預設的 postgres 資料庫:

    pgbench -i --host=INSTANCE_PRIVATE_IP --port=PORT_NUMBER --username=USERNAME

    更改下列內容:

    • INSTANCE_PRIVATE_IP:AlloyDB 執行個體的私人 IP 位址。您在建立執行個體時,已記下這個 IP 位址。
    • PORT_NUMBER:為 AlloyDB 執行個體保留的通訊埠號碼。在本教學課程中,通訊埠編號為 5432。
    • USERNAME:AlloyDB 執行個體的管理員使用者名稱。在本教學課程中,使用者名稱為 postgres。
  4. 在 Password 提示中,輸入 AlloyDB 執行個體的密碼。建立執行個體時,您已提供密碼,或由 AlloyDB 產生密碼。

  5. 執行不含引數的 pgbench,驗證基本功能。

    pgbench --host=INSTANCE_PRIVATE_IP --port=PORT_NUMBER --username=USERNAME
  6. 在 Password 提示中,輸入 AlloyDB 執行個體的密碼。

    輸出結果應該會類似下列內容:

    starting vacuum...end.
    transaction type: <builtin: TPC-B (sort of)>
    scaling factor: 1
    query mode: simple
    number of clients: 1
    number of threads: 1
    number of transactions per client: 10
    number of transactions actually processed: 10/10
    latency average = 3.794 ms
    tps = 263.560171 (including connections establishing)
    tps = 345.375423 (excluding connections establishing)
  7. 請使用一些選項,建立實用的測試。其中一些重要選項包括 -c (用戶端數量) 和 --transactions (每個用戶端的交易數量)。

    在本教學課程中,您將對存取 AlloyDB for PostgreSQL 資料庫的 10 個用戶端,以及每個用戶端的 100 筆交易執行效能測試。

    pgbench --host=INSTANCE_PRIVATE_IP --port=PORT_NUMBER --username=USERNAME -c 10 --transactions=100
  8. 在 Password 提示中,輸入 AlloyDB 執行個體的密碼。

    輸出結果應該會類似下列內容:

    starting vacuum...end.
    transaction type:  TPC-B (sort of)>
    scaling factor: 1
    query mode: simple
    number of clients: 10
    number of threads: 1
    number of transactions per client: 100
    number of transactions actually processed: 1000/1000
    latency average = 36.421 ms
    tps = 274.563444 (including connections establishing)
    tps = 275.733225 (excluding connections establishing)

清除所用資源

完成本教學課程後,您可以清除建立的資源,以免占用配額,並避免日後產生費用。

為避免系統向您的 Google Cloud 帳戶收取這個教學課程所用資源的費用,請按照下列步驟操作。

  1. 使用 Google Cloud 控制台刪除專案、AlloyDB 執行個體、Compute Engine VM 執行個體和虛擬私有雲網路。

下列各節將說明如何刪除或停用這些資源。

刪除專案

如要避免付費,最簡單的方法就是刪除您為了本教學課程所建立的專案。

  1. 前往 Google Cloud 控制台的「Manage resources」(管理資源) 頁面。

    前往「管理資源」頁面

  2. 在專案清單中選取要刪除的專案,然後點按「刪除」。

  3. 在對話方塊中輸入專案 ID,然後按一下「Shut down」(關閉) 刪除專案。

刪除 AlloyDB 執行個體

  1. 前往 Google Cloud 控制台的「AlloyDB Clusters」(AlloyDB 叢集) 頁面。

    前往 AlloyDB 叢集頁面

  2. 按一下 AlloyDB 執行個體的名稱。在本教學課程中,請點選「my-instance」。

  3. 按一下 [刪除]。

  4. 在對話方塊的文字欄位中,輸入 AlloyDB 執行個體名稱,然後按一下「刪除」。

刪除 Compute Engine VM 執行個體

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。

    前往 VM 執行個體頁面

  2. 按一下 Compute Engine VM 執行個體的名稱。在本教學課程中,請點選「my-compute-engine-vm-instance」my-compute-engine-vm-instance。

  3. 按一下「刪除」圖示。這個圖示看起來像垃圾桶。

  4. 在對話方塊中,按一下「刪除」。

刪除虛擬私有雲網路

  1. 前往 Google Cloud 控制台的「VPC networks」(虛擬私有雲網路) 頁面。

    前往「VPC networks」(VPC 網路) 頁面

  2. 按一下虛擬私有雲網路的名稱。在本教學課程中,請點選「my-vpc-network」。

  3. 按一下「刪除虛擬私有雲網路」。

  4. 在對話方塊中,按一下「刪除」。