你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure CLI 配置 Azure Database for PostgreSQL–灵活服务器的智能优化

适用于: Azure Database for PostgreSQL 灵活服务器

可以使用 Azure CLI 验证和更新 Azure Database for PostgreSQL 灵活服务器实例的智能优化配置。

若要了解有关智能优化的详细信息,请参阅概述

先决条件

  • 如果没有 Azure 订阅,请在开始之前创建一个免费帐户。

  • 安装或升级到 Azure CLI 的最新版本。 请参阅安装 Azure CLI

  • 使用 az login 命令登录到你的 Azure 帐户。 请记下 id 属性,它指的是你的 Azure 帐户的订阅 ID。

    az login
    
  • 如果你有多个订阅,请选择要使用 az account set 命令在其中创建服务器的相应订阅:

    az account set --subscription <subscription id>
    
  • 如果尚未创建 Azure Database for PostgreSQL 灵活服务器实例,请使用 az postgres flexible-server create 命令创建一个:

    az postgres flexible-server create --resource-group myresourcegroup --name myservername
    

验证当前设置

使用 az postgres flexible-server parameter show 命令确认智能优化功能的当前设置。

可以使用以下命令验证是否为资源组 myresourcegroup 下的服务器 mydemoserver.postgres.database.azure.com 激活了此功能:

az postgres flexible-server parameter show --resource-group myresourcegroup --server-name mydemoserver --name intelligent_tuning --query value

可以使用以下命令检查 intelligent_tuning.metric_targets 服务器参数的当前设置:

az postgres flexible-server parameter show --resource-group myresourcegroup --server-name mydemoserver --name intelligent_tuning.metric_targets --query value

启用智能优化

若要启用或禁用智能优化,请使用 az postgres flexible-server parameter set 命令。 可以从以下优化目标中进行选择:noneStorage-checkpoint_completion_targetStorage-min_wal_sizeStorage-max_wal_sizeStorage-bgwriter_delaytuning-autovacuumall

重要

目前,拥有 4 个或以上 vCore 的“常规用途”和“内存优化”服务器计算层支持自动清理优化。 不支持可突发服务器计算层。

  1. 使用以下命令激活智能优化功能:

    az postgres flexible-server parameter set --resource-group myresourcegroup --server-name mydemoserver --name intelligent_tuning --value ON
    
  2. 选择要激活的优化目标。

    • 若要激活所有优化目标,请使用以下命令:

      az postgres flexible-server parameter set --resource-group myresourcegroup --server-name mydemoserver --name intelligent_tuning.metric_targets --value all
      
    • 若要仅启用自动清理优化,请使用以下命令:

      az postgres flexible-server parameter set --resource-group myresourcegroup --server-name mydemoserver --name intelligent_tuning.metric_targets --value tuning-autovacuum
      
    • 若要激活两个优化目标,请使用以下命令:

      az postgres flexible-server parameter set --resource-group myresourcegroup --server-name mydemoserver --name intelligent_tuning.metric_targets --value tuning-autovacuum,Storage-bgwriter_delay
      

    如果要将参数的值重置为默认值,只需排除可选的 --value 参数即可。 然后,服务应用默认值。 在之前的示例中,该命令如下所示,它会将 intelligent_tuning.metric_targets 设置为 none

    az postgres flexible-server parameter set --resource-group myresourcegroup --server-name mydemoserver --name intelligent_tuning.metric_targets
    

注意

intelligent_tuningintelligent_tuning.metric_targets 服务器参数都是动态的,这意味着其值更改时无需重启服务器。

为优化目标选择值时的注意事项

intelligent_tuning.metric_targets 服务器参数中选择值时,请考虑以下注意事项:

  • NONE 值优先于所有其他值。 如果选择 NONE 与其他值的任意组合,则该参数被视为设置为 NONE。 这相当于 intelligent_tuning = OFF,因此不会进行优化。

  • ALL 值优先于所有其他值,但 NONE 除外。 如果选择具有任意组合的 ALL,则除了 NONE 之外,所有列出的参数都会进行优化。

  • ALL 值包含所有现有指标目标。 此值还会自动应用于你将来可能添加的任何新指标目标。 这使得可对 Azure Database for PostgreSQL 灵活服务器实例进行全面且经得起未来考验的优化。

  • 如果要包含另一个优化目标,则需要同时指定现有优化目标和新优化目标。 例如,如果 bgwriter_delay 已启用,并且你想要添加自动清理优化,则命令应如下所示:

    az postgres flexible-server parameter set --resource-group myresourcegroup --server-name mydemoserver --name intelligent_tuning.metric_targets --value tuning-autovacuum,Storage-bgwriter_delay
    

    仅指定新值的话,会覆盖当前设置。 在添加新优化目标时,请务必确保在命令中包含现有优化目标。

后续步骤