О направлении исследований на ближайший месяц.
Итак, имеем — в ходе работы СУБД возникают события ожидания . Известно , что само по себе событие ожидания без конкретного уточнения типа ожидания и контекстной связи с показателем производительности не несёт никакой полезной информации. Например — самое большое количество ожиданий это тип Activity или Client. Более того, в результате наблюдений и статистического анализа установлено, что даже большое количество ожиданий , например типа IO совсем не является показателем проблем производительности .
Напомню, что производительность СУБД, в общем случае, считаем количество блоков информации обработанных за единицу времени.
Предпосылка очень простая — если СУБД не обрабатывает информацию, то СУБД ждёт освобождения или предоставления какого либо ресурса.
В результате была сформирована гипотеза :
-
События ожидания делятся на 2 группы: влияющие и не влияющие на производительность СУБД.
-
Отношение количества событий ожидания к общему количеству ожиданий, не влияющих на производительность СУБД, в ходе штатной работы СУБД будет примерно постоянное .
-
Рост относительного количества событий ожидания , влияющих на производительность СУБД, в случае возникновения инцидента производительности будет расти.
Таким образом, для получения надежной метрики и оповещения о возникновении инцидента производительности, необходимо получить относительные значения событий ожидания .
Предварительно , к ожиданиям не влияющим на производительность СУБД отнесены :
—Activity: Серверный процесс простаивает. Это состояние показывает, что процесс ожидает активности в основном цикле обработки.
—Client: Серверный процесс ожидает в сокете некоторую активность пользовательского приложения.
—Timeout: Серверный процесс ожидает истечения определённого времени.
Соответственно , остальные ожидания будем считать — влияющими на производительность СУБД.
Если гипотеза окажется верна , то можно будет резко сократить круг информации для анализа в случае деградации производительности и еще быстрее установить причину, проведя корреляционный анализ конкретных событий ожидания и запросов при выполнении которых эти ожидания возникают.
P.S.Также , как побочный результат, будет сохранено рабочее время в связи с ненужностью очередного объяснения очередному разработчику о том , что большое количество ожиданий типа «Client» в отчете pgpro_pwr не означает проблем с СУБД.
ссылка на оригинал статьи https://habr.com/ru/articles/833808/
Добавить комментарий