Интеллектуальная настройка

База данных Azure для PostgreSQL гибкий сервер имеет интеллектуальную функцию настройки, предназначенную для автоматического повышения производительности и предотвращения проблем. Интеллектуальная настройка непрерывно отслеживает состояние базы данных на сервере База данных Azure для PostgreSQL — Flexible Server и динамически адаптирует её под рабочую нагрузку.

Эта функция состоит из двух функций автоматической настройки:

  • Настройка автоочистки: эта функция устарела и заменена новой функцией адаптивной автоочистки.
  • Настройка записи: эта функция отслеживает объем и характер операций записи, а также корректирует параметры, влияющие на производительность записи. Эти корректировки повышают производительность системы и надежность, что позволяет заранее предотвратить потенциальные осложнения.

Узнайте, как настроить интеллектуальную настройку.

Почему интеллектуальная оптимизация?

Настройка операций записи в базе данных является важной частью поддержания работоспособности и производительности гибкого сервера База данных Azure для PostgreSQL. Эта задача обычно приходится администраторам базы данных. Постоянный мониторинг базы данных и тонкая настройка операций записи могут быть сложными и трудоемкими. Эта задача становится все более сложной при работе с несколькими базами данных.

Вот тут в дело вступает интеллектуальная настройка. Вместо того чтобы вручную контролировать и настраивать базу данных, можно использовать интеллектуальную настройку для автоматического мониторинга и настройки базы данных. Затем можно сосредоточиться на других важных задачах.

Функция настройки операций записи отслеживает количество и шаблоны транзакций операций записи. Он интеллектуально настраивает такие параметры, как bgwriter_delay, checkpoint_completion_targetи max_wal_sizemin_wal_size. Это повышает производительность системы и надежность даже при высокой нагрузке записи.

При использовании интеллектуальной настройки вы можете сэкономить ценное время и ресурсы, используя гибкий сервер База данных Azure для PostgreSQL для обеспечения оптимальной производительности баз данных.

Как работает интеллектуальная настройка?

Интеллектуальная настройка — это непрерывный процесс мониторинга и анализа, который не только изучает характеристики вашей рабочей нагрузки, но и отслеживает текущий уровень нагрузки и использование ресурсов, а также такие показатели, как загрузка ЦП или число операций ввода-вывода в секунду (IOPS). Это не нарушает штатную работу нагрузки приложения.

Процесс позволяет базе данных динамически адаптироваться к вашей рабочей нагрузке, определяя текущую производительность записи и эффективность выполнения контрольных точек в вашем экземпляре. На основе этой аналитики интеллектуальная настройка применяет корректировки, которые повышают производительность ваших рабочих нагрузок и помогают избежать возможных проблем.

Оптимизация записи

Интеллектуальная настройка корректирует четыре параметра, связанные с настройкой операций записи: bgwriter_delay, checkpoint_completion_target, max_wal_size и min_wal_size.

Параметр bgwriter_delay определяет частоту, с которой процесс фоновой записи пробуждается для очистки "грязных" буферов (буферов, которые являются новыми или были изменены). Процесс фоновой записи — это один из трех процессов на гибком сервере База данных Azure для PostgreSQL, которые обрабатывают операции записи. Другие — это процесс контрольных точек и внутренние записи (стандартные клиентские процессы, такие как подключения приложений).

Основная роль фонового процесса записи заключается в том, чтобы снизить нагрузку на основной процесс контрольной точки и уменьшить нагрузку, создаваемую операциями записи серверных процессов. Параметр bgwriter_delay определяет частоту циклов фонового процесса записи. Изменив этот параметр, можно также оптимизировать производительность запросов языка обработки данных (DML).

Параметр checkpoint_completion_target является частью второго механизма записи, который поддерживает гибкий сервер базы данных Azure для PostgreSQL, а именно контрольный процесс. Контрольные точки создаются через постоянные интервалы, которые задаются параметром checkpoint_timeout (если только их создание не будет принудительно вызвано из-за превышения настроенного объёма пространства). Чтобы избежать перегрузки системы ввода-вывода из-за резкого всплеска записи страниц, запись грязных буферов во время контрольной точки распределяется по времени. Параметр checkpoint_completion_target управляет этой продолжительностью, используя checkpoint_timeout для задания продолжительности как доли интервала между контрольными точками.

Значение checkpoint_completion_target по умолчанию — 0,9 (с PostgreSQL 14). Это значение обычно лучше всего работает, так как оно распределяет нагрузку ввода-вывода за максимальный период времени. В редких случаях контрольные точки могут не успевать завершиться вовремя из-за непредвиденных колебаний количества необходимых сегментов журнала предзаписи (WAL). Потенциальное влияние на производительность является причиной того, почему checkpoint_completion_target целевая метрика для интеллектуальной настройки.

Ограничения и известные проблемы

  • Интеллектуальная настройка выполняет оптимизацию только в конкретных диапазонах. Возможно, эта функция не вносит никаких изменений.
  • Интеллектуальная настройка не настраивает параметры ANALYZE.