Azure Database for PostgreSQL灵活服务器包括智能优化功能,可自动提高性能并帮助防止问题。 智能优化持续监视Azure Database for PostgreSQL灵活服务器数据库的状态,并动态地将数据库适应工作负荷。
此功能包括两个自动优化函数:
- 自动清理优化:此功能会跟踪膨胀率并相应地调整自动清理设置。 它会同时考虑当前和预测的资源使用情况,预防工作负载中断。
- 写入调优:此功能监视写入操作的写入量和模式。 它修改影响写入性能的参数。 这些调整可增强系统性能和可靠性,并主动避免潜在的复杂性。
了解如何配置智能调优。
为什么使用智能优化?
优化数据库中的写入操作是维护Azure Database for PostgreSQL灵活服务器的运行状况和性能的关键部分。 数据库管理员通常执行此任务。 持续监视数据库和微调写入操作并非易事,且很耗时。 处理多个数据库时,此任务会变得越来越复杂。
智能优化简化了此过程。 使用智能优化来自动监视和优化数据库,而不是手动监视和优化数据库。 这样的话,你可以专注于其他重要任务。
写入优化功能会监测写入操作的数量和事务模式。 智能调整 bgwriter_delay、checkpoint_completion_target、max_wal_size 和 min_wal_size 等多项参数。 通过此操作,它可以增强系统性能和可靠性,甚至在高写入负载的情况下也是如此。
使用智能优化时,依靠Azure Database for PostgreSQL灵活服务器来保持数据库的最佳性能,从而节省宝贵的时间和资源。
智能优化的工作原理是什么?
智能优化是一个持续监视和分析过程,可了解工作负荷的特征。 它还跟踪当前的负载和资源使用情况,例如 CPU 或 IOPS。 它不会干扰应用程序工作负载的正常操作。
此过程允许数据库通过识别服务器上的当前写入性能和检查点效率来动态调整工作负荷。 利用这些见解,智能优化会部署优化操作,以增强工作负荷的性能并避免潜在的陷阱。
写入优化
智能优化功能会调整与写入优化相关的四个参数,分别是 bgwriter_delay、checkpoint_completion_target、max_wal_size 和 min_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设置。