1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-postgres-checkup

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
HELP.md 9.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 12:57 97e8127

Понимание эффективности настройки автоочистки

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 по сравнению с размерами таблиц и объёмом оперативной памяти?

G. Производительность / Соединения / Настройки, связанные с памятью

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)?

H. Анализ индексов

H001 Недействительные индексы

Список неработающих индексов (недействующее состояние), которые необходимо удалить или переиндексировать.

H002 Неиспользуемые и избыточные индексы

Показывает список никогда не используемых и редко используемых индексов. Помогает понять, сколько места они занимают.

Выводы:

  • Стоит ответить на следующие вопросы:
  • Составляет ли общий размер неиспользуемых индексов менее 10% от размера БД (только если статистика старше 1 недели)?
  • Сохраняется ли статистика после перезапусков?
  • Если возраст статистики низкий, к отчёту следует относиться с осторожностью.

H003 Внешние ключи без индексов

Проверяет, все ли внешние ключи имеют индексы в ссылочных таблицах.

H004 Избыточные индексы

Показывает список избыточных индексов. Помогает понять, сколько места они занимают. Какой тип рабочей нагрузки наиболее часто встречается (выборки, вставки, обновления и т. д.) в течение периода наблюдения?

Группировка основана на первом слове каждого запроса.

K003 Топ запросов по total_time

Один из самых подробных и глубоких отчётов. Показывает топ групп запросов, упорядоченных по общему времени выполнения в течение периода наблюдения (total_execution_time в pg_stat_statements). Хорошая отправная точка для оптимизации запросов.

Выводы:

— Первый вопрос, на который нужно ответить: есть ли группы запросов с соотношением total_time > 50 % от общего total_time? Если у нас есть такой тип запроса, его определённо стоит оптимизировать. — Полный текст запроса доступен по ссылке под каждой группой запросов.

L. Анализ схемы БД

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

L001 Размеры таблиц

Отображает размер таблиц и их компонентов (индексы, TOAST, сама таблица).

Вопросы, на которые стоит ответить:

— Не превышает ли размер индексов для каждой таблицы размер кучи (с тостом)? — Есть ли неиндексированные таблицы размером > 10 MiB? — Существуют ли несекционированные таблицы размером > 100 GiB?

L003 Риски переполнения диапазона целых чисел (int2, int4) в первичных ключах

Показывает первичные ключи с риском переполнения ёмкости целых чисел (достигнуто более 10 %). Если ёмкость первичного ключа будет исчерпана, это, скорее всего, приведёт к остановке сервиса.

Этот отчёт помогает защитить базу данных от катастрофы при переполнении целых чисел.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-postgres-checkup.git
git@api.gitlife.ru:oschina-mirror/mirrors-postgres-checkup.git
oschina-mirror
mirrors-postgres-checkup
mirrors-postgres-checkup
master