Для оценки влияния расширения на производительность был взят нагрузочный тест на конфигурации Докумпентооборот, рассмотренный в данной статье, но с корректировкой количества пользователей до 1000.
Тестирование проводилось на следующем стенде:
Сервер СУБД | CPU 48, RAM 378 Gb |
Сервер приложений | 1 центральный и 2 рабочих с характеристиками: CPU 32, RAM 128 Gb |
Версия СУБД | Tantor SE1C 16.6.1 |
Версия ОС сервера СУБД | AstraLinux 1.8.1 |
Версия 1С | |
Версия ОС сервера приложений | AstraLinux 1.7.5 |
Терминальный нагрузчики | 5 терминалов с характеристиками: CPU 16, RAM 80 Gb |
Все сервера были подняты как виртуальные машины на разных хостах виртуализации и в ходе теста контролировалось. чтобы не было переподписки.
Расширение auto_explain было настроено следующим образом:
shared_preload_libraries = 'auto_explain'
auto_explain.log_buffers = 'on'
auto_explain.log_verbose = 'on'
auto_explain.log_analyze = 'on'
auto_explain.log_level = 'LOG'
auto_explain.log_nested_statements = 'on'
auto_explain.log_timing = 'on'
auto_explain.log_min_duration = '1000'
CODE
В ходе 3х часового нагрузочного теста выполняется 78 тысяч ключевых операций и по его итогам были получены следующие результаты:
С включенным расширением среднее время ключевых операций хуже на 3%.
Если добавить настройку
auto_explain.sample_rate = 0.2
CODE
и таким образом собирать не все запросы длительностью более 1000мс, а только каждый 5й, то среднее время ключевых операций становится таким же как и при отключенном расширении auto_explain.
Заключение: при включении расширения auto_explain для использования модуля "Расширенная аналитика" рекомендуем устанавливать значение параметра auto_explain.sample_rate = 0.2. Это все также позволит собрать все проблемные запросы, но уменьшит вероятность падения производительности.