ЦУП. Сбор данных показателей

27.11.17

База данных - HighLoad оптимизация

Чтобы проанализировать данные производительности, нужно эти данные сначала собрать. Для этого в ЦУП предназначен сценарий "Мониторинг". Всего в сценарии доступно 22 показателя, разделенных на 5 групп. Для сбора данных по этим показателям ЦУП использует 3 источника данных: данные агента кластера 1С, счетчики операционной системы, технологический журнал.

Статья актуальна для ЦУП версии 2.0.19.02.

Чтобы проанализировать данные производительности, нужно эти данные сначала собрать. Для этого в ЦУП предназначен сценарий "Мониторинг". Всего в сценарии доступно 22 показателя, разделенных на 5 групп. Для сбора данных по этим показателям ЦУП использует 3 источника данных: данные агента кластера 1С, счетчики операционной системы, технологический журнал.

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

Каждая группа показателей использует определенные источники данных, поэтому рассмотрим их по отдельности.

 

Группа показателей "Запросы"

  • "Суммарное время выполнения запросов"
  • "Максимальное время выполнения запросов"
  • "Среднее время выполнения запросов"
  • "Количество выполняемых запросов"

При первом получении данных производится подключение к агенту сервера 1С. Далее при каждом такте обновления показателей (частота обновления задана в параметрах) происходит получение списка соединений с выбранной информационной базой. Для каждого соединения анализируется свойство durationCurrentDBMS (Время текущего вызова СУБД), измеряется в миллисекундах. Это же значение можно посмотреть в консоли кластера серверов в разделе сеансы, колонка "Время вызова СУБД (текущее)". Но здесь время измеряется уже в секундах. Если свойство больше 0, тогда оно попадет в нашу выборку.

Количество выполняемых запросов вычисляется как количество соединений, выполняющих запросы к СУБД в данный момент. Иными словами, количество соединений, у которых в данный момент свойство durationCurrentDBMS > 0.

Группа показателей "Ожидания на блокировках". Блокировки СУБД

  • "Суммарное время ожидания на блокировках СУБД"
  • "Максимальное время ожидания на блокировках СУБД"
  • "Среднее время ожидания на блокировках СУБД"
  • "Количество текущих ожиданий на блокировках СУБД"
  • "Количество таймаутов"

Первые 4 показателя работают аналогично показателям из группы "Запросы", только вместо свойства durationCurrentDBMS у соединений анализируется BlockedByDBMS (Идентификатор cоединения, блокирующего работу данного соединения (в СУБД)). Т.к. в этом свойстве храниться номер соединения, то время ожидания на блокировках вычисляется как ТекущееВремя - ВремяНачалаБлокировки. Время начала блокировки определяется как время начала первого такта, в котором возникло ожидание.

Количество таймаутов - здесь уже используется счетчик операционной системы "SQL Server: Locks\Lock Timeouts (timeout > 0)/sec". Если открыть Performance Monitor и добавить этот счетчик, то показания совпадут с теми, что отобразит ЦУП.

Группа показателей "Ожидания на блокировках". Блокировки 1С

  • "Суммарное время ожидания на блокировках 1С"
  • "Максимальное время ожидания на блокировках 1С"
  • "Среднее время ожидания на блокировках 1С"
  • "Количество текущих ожиданий на блокировках 1С"

Анализируется свойство blockedByLM (идентификатор соединения, блокирующего работу данного соединения) описания соединений агента кластера. В остальном показатели работают также, как и показатели ожидания на блокировках СУБД.

Группа показателей "Взаимоблокировки"

  • "Количество взаимоблокировок MS SQL Server"

Обрабатывается счетчик операционной системы "SQL Server: Locks\Number of Deadlocks/sec". Хоть в названии и стоит "/sec", но на самом деле счетчик кумулятивный.

Группа показателей "Анализ"

  • "Анализ запросов"
  • "Анализ ожиданий на блокировках"
  • "Анализ взаимоблокировок MS SQL Server"

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

"Анализ запросов". Включается технологический журнал с двумя событиями: DBMSSQL и SDBL. Для каждого события устанавливается отбор по длительности (свойство duration). Значение длительности указывается в параметрах показателя.

"Анализ ожиданий на блокировках". Используется сразу два лога ТЖ. Один с событиями DBMSSQL и SDBL для ожиданий на блокировках СУБД. Второй с TLOCK и SDBL с отбором по событию BeginTransaction для анализа ожиданий на блокировках 1С (включается только в том случае, если режим управления блокировками управляемый).

"Анализ взаимоблокировок MS SQL Server". Включается ТЖ по событиям DBMSSQL и SDBL. Также включается трассировка MSSQL по событию Deadlock graph.

Если у показателей "Анализ ожиданий на блокировках" и "Анализ взаимоблокировок MS SQL Server" стоит параметр "Получать планы запросов", то в файл настроек ТЖ добавится свойство planSQLText.

Группа показателей "Качество"

  • Проблемы с параллельностью работы

Считается на основании двух показателей по следующей формуле:

(Суммарное время ожидания на блокировках СУБД / Суммарное время выполнения запросов) * 100

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

HighLoad оптимизация Разработчик 1С 8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Использование оператора «В» для полей или данных составного типа (например, Регистратор) может приводить к неочевидным проблемам.

10.11.2025    15268    ivanov660    48    

57

HighLoad оптимизация Разработчик 1С:Предприятие 8 1C:ERP Бесплатно (free)

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

18.02.2025    16083    ivanov660    39    

62

HighLoad оптимизация Разработчик Россия Бесплатно (free)

А вы знали, что сервер 1С при соединении с базой на сервере PostgreSQL самостоятельно устанавливает некоторые параметры? Это важно знать при настройке сервера и отладке долгих запросов. Предлагаю разобраться.

27.08.2024    9994    soulner    10    

41

HighLoad оптимизация Технологический журнал Системный администратор Разработчик Бесплатно (free)

Обсудим поиск и разбор причин длительных серверных вызовов CALL, SCALL.

24.06.2024    18698    ivanov660    13    

64

HighLoad оптимизация Разработчик 1С:Предприятие 8 Бесплатно (free)

Метод очень медленно работает, когда параметр приемник содержит намного меньше свойств, чем источник.

06.06.2024    24593    Evg-Lylyk    73    

46

HighLoad оптимизация Разработчик 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Анализ простого плана запроса. Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы.

13.03.2024    14318    spyke    29    

54
Для отправки сообщения требуется регистрация/авторизация