使用 pgbench 分析 AlloyDB 实例的性能

在本教程中,您将在 Virtual Private Cloud (VPC) 网络上集成 AlloyDB 实例和 Compute Engine VM 实例。然后,您可以在 Compute Engine 虚拟机实例上安装 pgbench 来验证集成,并使用此基准测试工具对 AlloyDB 实例进行性能测试。

目标

在本教程中,您将学习如何:

  • 为 AlloyDB 实例和 Compute Engine 虚拟机实例创建一个 VPC 网络,以便实例和虚拟机之间能够安全地传递通信。
  • 创建一个 AlloyDB 实例和一个 Compute Engine 虚拟机实例,并为这两个实例分配和配置 VPC 网络。
  • 在 Compute Engine 虚拟机实例上安装 pgbench,针对 AlloyDB 实例运行它,并使用它针对 AlloyDB 实例进行性能测试。

费用

本教程使用 Google Cloud的收费组件,包括 VPC 网络、AlloyDB 和 Compute Engine。您可以使用价格计算器根据您的预计用量来估算费用。

准备工作

  1. 在 Google Cloud 控制台中,在项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到项目选择器页面

  2. 确保您的 Google Cloud 项目已启用结算功能。了解如何确认您的项目是否已启用结算功能

  3. 启用 VPC 网络、AlloyDB 和 Compute Engine API。

    启用 API

  4. 确保您已将 AlloyDB Admin 角色分配给您的用户账号。

    转到 IAM 页面

创建 VPC 网络

在本部分中,您将为 AlloyDB 实例和 Compute Engine 虚拟机实例创建一个 VPC 网络,以便实例和虚拟机之间能够安全地传递通信。

  1. 前往 Google Cloud 控制台中的 VPC 网络页面。

    转到“VPC 网络”页面

  2. 点击创建 VPC 网络。系统随即会显示创建 VPC 网络页面。

  3. 为 VPC 网络的名称输入 my-vpc-network

  4. 子网创建模式部分,选择自定义选项。

  5. 点击添加子网

  6. 为子网的名称输入 my-subnet

  7. 选择一个区域,然后为子网输入一个 IP 地址范围

  8. 点击完成

  9. 点击创建

创建 AlloyDB 实例

在本部分中,您将创建一个 AlloyDB 实例,并为该实例分配和配置 VPC 网络。

  1. 在 Google Cloud 控制台中,前往集群页面。

    转到集群

  2. 点击创建集群

  3. 按如下方式配置集群:

    1. 基本信息部分的集群 ID 字段中,输入 my-cluster

    2. 密码字段中,输入您想要的任意密码。记下此密码,您稍后在本教程中会再次使用它。

    3. 位置部分的区域字段中,选择 us-central1 (Iowa)

    4. Database version 字段中,保留默认值。

    5. 网络菜单中,选择 my-vpc-network。您已在创建 VPC 网络中创建此 VPC 网络。

    6. 由于您的 VPC 网络尚未初始化专用服务访问通道,因此请点击设置连接

    7. 在随即显示的创建专用服务连接窗格中:

      1. 选择使用自动分配的 IP 地址范围选项,让 Google Cloud 在您的网络中选择自动分配的 IP 地址范围。

      2. 点击继续

      3. 点击创建连接

  4. 按如下方式配置主实例:

    1. 实例 ID 字段中,输入主实例的 ID。

    2. 可用区级可用性下,选择以下选项之一:

      1. 如需创建具有自动故障切换的高可用生产实例,请选择多个可用区(高可用)

      2. 如需创建不需要高可用性的基本实例,请选择单个可用区

    3. 选择机器类型。

  5. 点击创建集群以同时创建集群和主实例。

  6. 记下 AlloyDB 实例页面上显示的 AlloyDB 实例的专用 IP 地址。您需要此地址来验证 AlloyDB 实例与 Compute Engine 虚拟机实例之间的集成。

创建一个 Compute Engine 虚拟机实例

在本部分中,您将创建一个 Compute Engine 虚拟机实例,并为该实例分配和配置 VPC 网络。

  1. 前往 Google Cloud 控制台中的虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 点击创建实例

  3. 创建实例页面的名称字段中,输入您要创建的 Compute Engine 虚拟机实例的唯一标识符。在本教程中,在字段中输入 my-compute-engine-vm-instance

  4. 在该页面的访问权限范围部分中,选择允许对所有 Cloud API 的全面访问权限选项。

  5. 展开高级选项,然后完成以下步骤:

    1. 点击网络子标签页。

    2. 点击添加网络接口

    3. 网络菜单中,选择 my-vpc-network。您已在创建 VPC 网络中创建此 VPC 网络。

    4. 点击完成。页面的网络接口部分会显示两个 VPC 网络:defaultmy-vpc-network

  6. 点击 Delete(删除)以删除默认 VPC 网络。

    通过删除默认 VPC 网络,您可以强制 Compute Engine 虚拟机实例使用您在本教程中创建的 VPC 网络。

  7. 点击创建

    您的 Compute Engine 虚拟机实例可能需要几秒钟才能创建完毕。此时,该实例会显示在虚拟机实例页面中,并且此实例的状态为正在运行(由对勾标记表示)。

验证集成

在本部分中,您将在 Compute Engine 虚拟机实例上安装 pgbench,对 AlloyDB 实例运行 pgbench,并使用它对 AlloyDB 实例进行性能测试。

  1. 连接到您的 Compute Engine 虚拟机实例。为此,请点击虚拟机实例右侧的 SSH 菜单,然后选择 Open in browser window

  2. 在 Compute Engine 虚拟机实例上安装“Contributed Extensions and Additions to PostgreSQL”软件包。

    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 虚拟机实例和 VPC 网络。

以下部分介绍如何删除或关闭这些资源。

删除项目

若要避免产生费用,最简单的方法是删除您为本教程创建的项目。

  1. 前往 Google Cloud 控制台中的管理资源页面。

    转到“管理资源”页面

  2. 在项目列表中,选择要删除的项目,然后点击删除

  3. 在对话框中输入项目 ID,然后点击关停以删除项目。

删除 AlloyDB 实例

  1. 前往 Google Cloud 控制台中的 AlloyDB 实例页面。

    前往“AlloyDB 实例”页面

  2. 点击您的 AlloyDB 实例的名称。在本教程中,请点击 my-instance

  3. 点击删除

  4. 在对话框中,在文本字段中输入 AlloyDB 实例的名称,然后点击删除

删除 Compute Engine 虚拟机实例

  1. 前往 Google Cloud 控制台中的虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 点击 Compute Engine 虚拟机实例的名称。对于本教程,请点击 my-compute-engine-vm-instance

  3. 点击删除图标。此图标类似于垃圾桶。

  4. 在该对话框中,点击删除

删除 VPC 网络

  1. 前往 Google Cloud 控制台中的 VPC 网络页面。

    转到“VPC 网络”页面

  2. 点击您的 VPC 网络的名称。在本教程中,请点击 my-vpc-network

  3. 点击删除 VPC 网络

  4. 在该对话框中,点击删除