智能调节

Azure Database for PostgreSQL灵活服务器具有智能优化功能,旨在自动增强性能并帮助防止问题。 智能优化会持续监视 Azure Database for PostgreSQL 灵活服务器数据库的状态,并动态地让数据库适应工作负荷。

此功能包含两项自动优化功能:

  • 自动清理优化:此功能会跟踪膨胀率并相应地调整自动清理设置。 它会同时考虑当前和预测的资源使用情况,预防工作负载中断。
  • 写入优化:此功能会持续监视写入操作的次数和模式,并修改影响写入性能的参数。 这些调整可增强系统性能和可靠性,从而主动避免潜在的复杂情况。

了解如何配置智能调优

为什么要进行智能优化?

优化数据库中的写入操作是维护Azure Database for PostgreSQL灵活服务器的运行状况和性能的关键部分。 此任务通常由数据库管理员承担。 持续监视数据库和微调写入操作并非易事,且很耗时。 处理多个数据库时,此任务会变得越来越复杂。

此时,智能优化就可以派上用场。 可以使用智能优化来自动监视和优化数据库,而不必手动监视和优化。 这样的话,你可以专注于其他重要任务。

写入优化功能会监测写入操作的数量和事务模式。 智能调整 bgwriter_delaycheckpoint_completion_targetmax_wal_sizemin_wal_size 等多项参数。 通过此操作,它可以增强系统性能和可靠性,甚至在高写入负载的情况下也是如此。

使用智能优化时,可以通过依靠Azure Database for PostgreSQL灵活服务器来保持数据库的最佳性能,从而节省宝贵的时间和资源。

智能优化的工作原理是什么?

智能优化功能会持续进行监视和分析,让你不仅可以了解工作负载的特征,还可以跟踪 CPU 或 IOPS 等当前负载和资源使用情况。 它不会干扰应用程序工作负载的正常操作。

此过程允许数据库通过识别实例上的当前写入性能和检查点效率来动态调整工作负荷。 借助这些见解,智能优化可以部署优化操作,以增强工作负载的性能并避免潜在的缺陷。

写入优化

智能优化功能会调整与写入优化相关的四个参数,分别是 bgwriter_delaycheckpoint_completion_targetmax_wal_sizemin_wal_size

参数 bgwriter_delay 负责确定唤醒后台写入进程以清理“脏”缓冲区(即新建或修改过的缓冲区)的频率。 后台编写器进程是Azure Database for PostgreSQL灵活服务器中处理写入操作的三个进程之一。 另外两个是检查点进程和后端写入(标准客户端进程,例如应用程序连接)。

后台写入进程的主要作用是减轻主检查点进程的压力,并降低后端写入的负担。 bgwriter_delay 参数控制后台写入轮次的频率。 通过调整此参数,还可以优化数据操作语言 (DML) 查询的性能。

checkpoint_completion_target 参数是 Azure Database for PostgreSQL 灵活服务器实例支持的第二个写入机制的一部分,具体为检查点进程。 检查点按 checkpoint_timeout 定义的固定间隔出现(除非因超出配置的空间而强制出现)。 为了避免页面写入激增导致 I/O 系统过载,在检查点进程期间写入脏缓冲区的过程将在一段时间内分散进行。 checkpoint_completion_target 参数控制此持续时间的方式是,使用 checkpoint_timeout 将持续时间指定为检查点间隔的一部分。

checkpoint_completion_target 的默认值为 0.9(从 PostgreSQL 14 起)。 此值通常效果最佳,因为它在最长时段内分散 I/O 负载。 在极少数情况下,检查点可能无法及时完成,因为所需的预写日志记录 (WAL) 段的数量出现意外波动。 对性能的潜在影响是 checkpoint_completion_target 成为智能优化的目标指标的原因。

限制和已知问题

  • 智能优化只会在特定的范围内进行优化。 该功能可能不进行任何更改。
  • 智能优化不会调整 ANALYZE 设置。
  • 目前支持具有 4 个或更多 vCore 的“常规用途”和“内存优化”服务器计算层。 不支持可突发服务器计算层。