Поделиться через


Интеллектуальная настройка в службе База данных Azure для PostgreSQL (гибкий сервер).

ОБЛАСТЬ ПРИМЕНЕНИЯ: База данных Azure для PostgreSQL — гибкий сервер

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

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

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

Вы можете включить интеллектуальную настройку с помощью портал Azure или Azure CLI.

Почему интеллектуальная настройка?

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

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

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

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

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

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

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

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

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

Настройка autovacuum

Интеллектуальная настройка настраивает пять параметров, связанных с автовакуумом: autovacuum_vacuum_scale_factor, , autovacuum_cost_limit, autovacuum_naptimeautovacuum_vacuum_thresholdи autovacuum_vacuum_cost_delay. Эти параметры регулируют такие компоненты, как:

  • Доля таблицы, которая задает VACUUM процесс.
  • Ограничение задержки вакуума на основе затрат.
  • Интервал приостановки между запусками autovacuum.
  • Минимальное количество обновленных или мертвых кортежей, необходимых для запуска VACUUM процесса.
  • Длительность приостановки между раундами очистки.

Внимание

Интеллектуальная настройка изменяет параметры, связанные с autovacuum, на уровне сервера, а не на отдельных уровнях таблиц. Кроме того, если автовакум отключен, интеллектуальная настройка не может работать правильно. Для интеллектуальной настройки для оптимизации процесса необходимо включить функцию автовакума.

Хотя управляющая программа autovacuum активирует две операции (VACUUM и ANALYZE), интеллектуальная настройка настраивает только VACUUM процесс. В настоящее время эта функция не настраивает ANALYZE процесс, который собирает статистику о оглавлении, чтобы помочь База данных Azure для PostgreSQL гибкому планировщику запросов сервера выбрать наиболее подходящий план выполнения запросов.

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

Если интеллектуальная настройка оптимизирована для автоматической очистки, она учитывает средний blat сервера, используя статистику о живых и мертвых кортежах. Чтобы уменьшить большие двоичные объекты, интеллектуальная настройка может уменьшить такие параметры, как коэффициент масштабирования или naptime. При необходимости этот процесс может привести к снижению VACUUM задержки между раундами.

С другой стороны, если большие двоичные объекты минимальны, а процесс автовакуума слишком агрессивный, интеллектуальная настройка может увеличить такие параметры, как задержка, коэффициент масштабирования и время сна. Этот баланс сводит к минимуму большие двоичные объекты и помогает обеспечить эффективное использование ресурсов в процессе автовакуума.

Настройка записи

Интеллектуальная настройка настраивает четыре параметра, связанные с настройкой записей: bgwriter_delay, , checkpoint_completion_targetmax_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 параметры.
  • Настройка autovacuum в настоящее время поддерживается для уровней вычислительных ресурсов сервера общего назначения и оптимизированных для памяти серверов с четырьмя или более виртуальными ядрами. Уровень вычислительных ресурсов сервера с возможностью ускорения не поддерживается.

Следующие шаги