Понимание эффективности настройки автоочистки
F004, F005 Автоочистка: раздувание кучи, раздувание индекса (оценка)
В этом отчёте представлено оценочное раздувание таблиц и индексов.
Выводы:
- Объекты с высоким процентом раздувания приводят к потере дискового пространства, ухудшению производительности запросов, дополнительным затратам на ЦП и чрезмерной нагрузке на диск при чтении. Этот отчёт основан на оценках. Ошибки в оценках раздувания могут быть значительными (в некоторых случаях до 15% и более). Используйте его только как индикатор потенциальных проблем.
- Проверяет следующее:
- Экстремальный (>90%) уровень предполагаемого раздувания кучи или индекса.
- Значительный (>40%) уровень предполагаемого раздувания кучи или индекса.
F008 Автоочистка: использование ресурсов
Отображает таблицу с настройками Postgres, связанными с использованием ресурсов автоочисткой.
Выводы:
- Не является ли значение по умолчанию
autovacuum_max_workers
(при количестве ядер ЦП или виртуальных ядер vCPU ≥ 10)?- Не являются ли значения по умолчанию для
autovacuum_vacuum_cost_limit
/vacuum_cost_limit
?- Не слишком ли низкое значение
maintenance_work_mem
/autovacuum_work_mem
по сравнению с размерами таблиц и объёмом оперативной памяти?
G001 Настройки, связанные с памятью
Отображаются настройки Postgres, связанные с использованием памяти.
Выводы:
- Управление памятью в PostgreSQL важно для хорошей производительности базы данных.
- Вопросы, на которые стоит ответить:
- Настроены ли параметры потребления ресурсов?
- Низкий или высокий уровень рисков OOM?
- Можно ли наблюдать какие-либо признаки неоптимального поведения использования памяти?
G002 Соединения и текущая активность
Подробный отчёт о всех соединениях, сгруппированных по пользователям, базам данных и типу состояния.
Выводы:
- Отчёт помогает выявить количество потенциально плохих условий, таких как:
- Много сеансов «бездействующих в транзакции». Есть ли какие-либо соединения «бездействующие в транзакции» со статусом, изменённым более минуты/часа назад, или с возрастом транзакции более минуты/часа?
- Длительные активные соединения. Есть ли какие-либо «активные» соединения со статусом, изменённым более минуты/часа назад?
- Насколько близко значение
max_connections
?
G003 Таймауты, блокировки, взаимоблокировки
Предоставляет информацию о том, как настроены параметры, связанные с «тайм-аутом» и блокировкой, показывает счётчик взаимоблокировок для каждой базы данных после сброса статистики.
Выводы:
- Стоит ответить на вопросы:
- Является ли значение
statement_timeout
> 0 и ≤ 30 секунд (хороший выбор для системы OLTP)?- Является ли значение
idle_in_transaction_session_timeout
>0 и < 20 минут (предотвращение проблем с автоочисткой и блокировками)?- Не является ли значение
max_locks_per_transaction
не по умолчанию (например, низкое значение может прервать pg_dump)?
H001 Недействительные индексы
Список неработающих индексов (недействующее состояние), которые необходимо удалить или переиндексировать.
H002 Неиспользуемые и избыточные индексы
Показывает список никогда не используемых и редко используемых индексов. Помогает понять, сколько места они занимают.
Выводы:
- Стоит ответить на следующие вопросы:
- Составляет ли общий размер неиспользуемых индексов менее 10% от размера БД (только если статистика старше 1 недели)?
- Сохраняется ли статистика после перезапусков?
- Если возраст статистики низкий, к отчёту следует относиться с осторожностью.
H003 Внешние ключи без индексов
Проверяет, все ли внешние ключи имеют индексы в ссылочных таблицах.
H004 Избыточные индексы
Показывает список избыточных индексов. Помогает понять, сколько места они занимают. Какой тип рабочей нагрузки наиболее часто встречается (выборки, вставки, обновления и т. д.) в течение периода наблюдения?
Группировка основана на первом слове каждого запроса.
Один из самых подробных и глубоких отчётов. Показывает топ групп запросов, упорядоченных по общему времени выполнения в течение периода наблюдения (total_execution_time в pg_stat_statements). Хорошая отправная точка для оптимизации запросов.
Выводы:
— Первый вопрос, на который нужно ответить: есть ли группы запросов с соотношением total_time > 50 % от общего total_time? Если у нас есть такой тип запроса, его определённо стоит оптимизировать. — Полный текст запроса доступен по ссылке под каждой группой запросов.
Отчёты этой группы предназначены для архитектурных проверок, которые имеют решающее значение для принятия решений об изменении структуры базы данных в условиях растущего объёма данных.
Отображает размер таблиц и их компонентов (индексы, TOAST, сама таблица).
Вопросы, на которые стоит ответить:
— Не превышает ли размер индексов для каждой таблицы размер кучи (с тостом)? — Есть ли неиндексированные таблицы размером > 10 MiB? — Существуют ли несекционированные таблицы размером > 100 GiB?
Показывает первичные ключи с риском переполнения ёмкости целых чисел (достигнуто более 10 %). Если ёмкость первичного ключа будет исчерпана, это, скорее всего, приведёт к остановке сервиса.
Этот отчёт помогает защитить базу данных от катастрофы при переполнении целых чисел.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )