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

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

См. также

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

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

24.06.2024    5803    ivanov660    12    

56

HighLoad оптимизация Программист Платформа 1С v8.3 Бесплатно (free)

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

06.06.2024    10168    Evg-Lylyk    61    

45

HighLoad оптимизация Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

13.03.2024    5527    spyke    28    

49

HighLoad оптимизация Программист Платформа 1С v8.3 Бесплатно (free)

Оказывается, в типовых конфигурациях 1С есть, что улучшить!

13.03.2024    8155    vasilev2015    20    

42

HighLoad оптимизация Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих запросов на sql, ожиданий, конвертация запроса в 1С и рекомендации, где может тормозить.

2 стартмани

15.02.2024    13199    266    ZAOSTG    87    

115

HighLoad оптимизация Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Принимать, хранить и анализировать показания счетчиков (метрики) в базе 1С? Почему бы нет? Но это решение быстро привело к проблемам с производительностью при попытках построить какую-то более-менее сложную аналитику. Переход на PostgresSQL только временно решил проблему, т.к. количество записей уже исчислялось десятками миллионов и что-то сложное вычислить на таких объемах за разумное время становилось все сложнее. Кое-что уже практически невозможно. А что будет с производительностью через пару лет - представить страшно. Надо что-то предпринимать! В этой статье поделюсь своим первым опытом применения СУБД Clickhouse от Яндекс. Как работает, что может, как на нее планирую (если планирую) переходить, сравнение скорости работы, оценка производительности через пару лет, пример работы из 1С. Все это приправлено текстами запросов, кодом, алгоритмами выполненных действий и преподнесено вам для ознакомления в этой статье.

1 стартмани

24.01.2024    6257    glassman    20    

42

HighLoad оптимизация Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Встал вопрос: как быстро удалить строки из ТЗ? Рассмотрел пять вариантов реализации этой задачи. Сравнил их друг с другом на разных объёмах данных с разным процентом удаляемых строк. Также сравнил с выгрузкой с отбором по структуре.

09.01.2024    16467    doom2good    49    

71
Оставьте свое сообщение