Эффект наблюдателя
В физике эффектом наблюдателя называют теорию, что простое наблюдение явления неизбежно изменяет его. Часто это следствие несовершенства применяемых инструментов, которые по своему принципу работы изменяют состояние измеряемой величины. Примером служит проверка давления в автомобильных шинах; это трудно сделать, не выпуская немного воздуха при соединении с манометром; кроме того, прибор сам имеет какой-то объём. Невозможно увидеть какой-то объект без облучения его светом или другими частицами (электронами в электронном микроскопе), которые влияют на состояние объекта, а поглощение квантов для измерения освещённости уменьшает её. Даже если эффект наблюдателя невелик, объект всё равно изменяет состояние. Этот эффект наблюдается во многих областях физики, но обычно может быть уменьшен подбором эффективных инструментов и/или использованием лучших методов наблюдения.
Эффект наблюдателя — Рувики: Интернет-энциклопедия
Задача
Оценить влияние расчета медианного времени выполнения тестовых запросов при выполнении нагрузочного тестирования , на производительность СУБД.
Необходимость расчета медианного времени выполнения тестового запроса:
Порядок расчета времени выполнения тестового запроса
◽Тестовый запрос выполняется в БД нагрузочного тестирования (pgbench_db).
◽Хранение и расчет времени выполнения тестового запроса выполняется в БД мониторинга производительности (performance_db).
- Зафиксировать время начала выполнения тестового запроса.
- Выполнить тестовый запрос .
- Зафиксировать время окончания тестового запроса.
- Передать в performance_db время начала и окончания тестового запроса .
Для передачи данных между pgbench_db и performance_db используется стандартное расширение dblink:
Постановка эксперимента
Эксперимент-1 (Сценарий-5)
Нагрузочное тестирование по сценарию "Mix"
Эксперимент-2 (Сценарий-6)
Нагрузочное тестирование по сценарию "Mix Without Median Time"
Для экономии времени, предельная нагрузка уменьшена до 50 соединений.
Результаты сравнительных экспериментов
Операционная скорость
Эксперимент-1 (Сценарий-5)
Эксперимент-2 (Сценарий-6)
Результат
- Операционная скорость кардинально выросла.
- Значение нагрузки соответствующей максимальной скорости - не изменилось.
Корреляция и ожидания СУБД
Результаты
- Снижение линии регрессии операционной скорости для сценария-6 кардинально уменьшилось и составило менее 1%. Для сценария-5 снижение линии регрессии составило 10%.
- Для сценария-6 отсутствует корреляция с типом ожидания IO.
- Для сценария-6 кардинально снизилось количество ожиданий IO.
- Для сценария-6 кардинально увеличилось количество ожиданий Lock , LWLock в связи с резким ростом операционной скорости СУБД.
Корреляция по событию ожидания "LWLock" для тестовых запросов
Сценарий "Select only"
Сценарий "Select+Update"
Сценарий "Insert only"
Сценарий "CPU Load"
Общие результаты для всех сценариев:
- Кардинальное снижение событий ожидания ProcArray в эксперименте-2.
- Кардинальное увеличение прочих событий ожидания в эксперименте-2 в связи с ростом операционной скорости.
ProcArray : Ожидание при обращении к общим структурам данных в рамках процесса
Итоги
- Использование dblink оказывает кардинальное влияние на снижение скорость СУБД, даже при доступе к БД внутри одного кластера.
- Характер, корреляция и общая картина ожидания при использовании и неиспользовании расширения dblink существенно изменяется.
- Основным следствием использования dblink является рост ожиданий и корреляция с типом ожидания IO.
- При неиспользовании расширения dblink - кардинально снижается количество событий ожидания ProcArray.
- ⚠️ГИПОТЕЗА⚠️ : рост ожиданий ProcArray при использовании расширения dblink связано с увеличением времени транзакции.
- Нагрузка, соответствующая максимальной производительности СУБД - не зависит от использования расширения dblink.
Изменение порядка проведения нагрузочного тестирования на примере тестовой СУБД.
1. Для оценки предельной нагрузки на СУБД по значению медианного времени выполнения тестовых запросов - используется Сценарий-5:
Операционная скорость
Максимальная скорость достигается при общей нагрузке = 18 соединений.
Медианное время выполнения сценария "Select only"
Увеличение медианного времени выполнения тестового запроса по сценарию "Select only " свыше 100% начинается после общей нагрузки 37 соединений.
Медианное время выполнения сценария "Select+Update"
Увеличение медианного времени выполнения тестового запроса по сценарию "Select+Update " свыше 100% начинается после общей нагрузки 37 соединений.
Медианное время выполнения сценария "Insert only"
Увеличение медианного времени выполнения тестового запроса по сценарию "Insert only " свыше 50% начинается после общей нагрузки 37 соединений.
Медианное время выполнения сценария "CPU Load"
Увеличение медианного времени выполнения тестового запроса по сценарию "CPU Load " свыше 50% - не наблюдается.
2. Для оценки корреляции и характерных ожидания выполнения тестовых запросов - используется Сценарий-6:
Операционная скорость по нагрузке на СУБД
Максимальная скорость достигается при общей нагрузке = 18 соединений.