Архивный материал. Методика устарела или не используется.
Начало
Постановка задачи
Анализ результатов отчета "Отчет по инцидентам за период времени (incidents_to_timepoint)".
Разделы отчета
1.Общая информация по инцидентам снижения скорости СУБД
2.Количество SQL запросов по инцидентам
3.Количество инцидентов для SQL запросов
4.Количество SQL запросов по событиям ожиданий(wait_event)
5.Итог
1.Общая информация по инцидентам снижения скорости СУБД
Приоритеты инцидентов
Результат
80% инцидентов составляют инциденты приоритета 4.
Длительности инцидентов
Результат
Длительность 80% инцидентов составляют 20 и более минут.
Снижение операционной скорости
Результат
Инциденты с приоритетом 4 могут иметь высокое значение относительного снижения скорости.
Ожидания СУБД
Результат
Наибольшая корреляция между ожиданиями СУБД и ожиданиями типа IPC.
2.Количество SQL запросов по инцидентам
Результат
Наибольшее количество запросов имеет инцидент 142.
3.Количество инцидентов для SQL запросов
Результат
SQL запросы с queryid = -4040189995000405452 и -2983227928459178773 выполняются во всех инцидентах.
4.Количество SQL запросов по событиям ожиданий(wait_event)
Гистограмма количества SQL запросов по событиям ожиданий
Диаграмма Парето по количеству SQL запросов по событиям ожиданий
Количество SQL запросов по событиям ожиданий по типа IPC(наибольшая корреляция с событиями ожиданий СУБД ).
Гистограмма количества SQL запросов по событиям ожиданий по типа IPC(наибольшая корреляция с событиями ожиданий СУБД ).
Диаграмма Парето по количеству SQL запросов по событиям ожиданий по типа IPC(наибольшая корреляция с событиями ожиданий СУБД ).
Результат
Наибольшее количество запросов по типу ожидания IPC возникает по событиям ожидания BgWorkerShutdown и ParallelFinish.
- BgWorkerShutdown : Ожидание завершения фонового рабочего процесса.
- ParallelFinish : Ожидание завершения вычислений параллельными рабочими процессами.
Мероприятия для снижения количества ожиданий BgWorkerShutdown:
1. Некоторые параметры конфигурации могут влиять на поведение фоновых процессов. Например, параметр bgwriter_delay определяет интервал между запусками фонового процесса записи. Увеличение этого значения может уменьшить частоту запуска фонового процесса, что может снизить нагрузку на систему.
Мероприятия для снижения количества ожиданий ParallelFinish:
1. Оптимизация запросов.
2. Настройка параметров параллелизма:
- Параметр max_parallel_workers_per_gather определяет максимальное количество параллельных рабочих процессов, которые могут быть использованы для одного оператора Gather. Уменьшение этого параметра может снизить количество параллельных операций и, следовательно, количество ожиданий ParallelFinish.
- Параметр parallel_setup_cost определяет стоимость настройки параллельного плана. Увеличение этого параметра может сделать параллельные планы менее привлекательными для оптимизатора, что может привести к использованию менее параллельных планов.
3. Использование правильных настроек для агрегации:
- Если запросы включают агрегацию, убедитесь, что агрегатные функции поддерживают параллелизм. Если они не поддерживают, это может привести к увеличению ожиданий ParallelFinish.
4. Оптимизация ресурсов:
- Убедитесь, что у вас достаточно ресурсов (CPU, память) для эффективного выполнения параллельных операций. Недостаток ресурсов может привести к увеличению времени ожидания.
5.Итог
Сводные отчеты по производительности СУБД позволяют установить:
- Относительное количество инцидентов по приоритетам и длительности за период анализа.
- Установить значения деградации скорости СУБД при возникновении инцидентов.
- Определить тип ожидания имеющий наибольшую корреляцию со снижением скорости СУБД в ходе инцидентов - цель глубинного анализа со стороны СУБД , приложения и инфраструктуры.
- Определить количество SQL запросов по инцидентам.
- Определить SQL запросы имеющиеся в наибольшем количестве инцидентов для начала работ по оптимизации на уровне SQL.