Содержание:
- Цели и задачи.
- Подключение счетчиков в базу "мониторинг производительности".
- Видео-урок.
- Как это использовать?
- Ссылки.
Определим цели и задачи:
Мы получим возможность отслеживать изменение параметров производительности сервера 1С в реальном масштабе времени с использованием сервиса RAS 1C, разбирать ситуации в прошлом, делать выводы и выполнять настройку. По факту мы можем анализировать эту информацию самостоятельно,а можем бонусом настроить бота-помощника Ларису, которая станет предупреждать об опасных и других критических ситуациях в различные мессенджеры. Видео-урок и ссылки ищите внизу статьи.
Сервис RAS может предоставлять информацию о состоянии производительности процессов, параметров работы пользователей (сеансы пользователей) и др. В качестве основных проблем выделим следующие задачи:
- Нагрузка, создаваемая пользователями относительно СУБД: "Время захвата СУБД" (db-proc-took) и "Очередь захвата СУБД" (количество сеансов пользователей, стоящих в очереди)
- Нагрузка, создаваемая пользователями относительно сервера 1С: "Время вызова текущее" (duration-current) и "Очередь пользователей по времени вызова" (количество сеансов пользователей, стоящих в очереди).
- Общее состояние серверов 1С и СУБД.
По данным 1C its выбранные в задаче параметры хорошо характеризуют "жизненные" показатели сервера, чуть более подробно про них расскажем в конце статьи. Обратите внимание, что интерпретация этих показателей зависит от конкретной ситуации, но в целом прослеживаются общие черты.
Подключим замеры счетчиков от сервиса RAS 1С!
Для выполнения данной процедуры мы должны использовать обработку подключения к службе RAS «МониторRAS_1C.epf», которую предварительно нужно скачать и загрузить в базу мониторинга (укажите размещение в разделе "Замеры").
1. Сначала создадим новый замер. Для этого перейдите в замеры и создайте замер под наименованием «Лариса наблюдает за RAS 1C» и укажите следующие параметры:
- глубина хранения 5-7 дней;
- тип замера - "произвольный";
- загрузка в реальном времени;
- обработка - «МониторRAS_1C.epf».
2. Настраиваем обработку замеров. Переходим в замеры, открываем дополнительные обработки и выбираем "Настройка 'Монитор RAS 1C'". Открываем форму настроек монитора и указываем следующие параметры и выполняем действия.
- замер - «Лариса наблюдает за RAS 1C»
- путь к серверу 1С и порт RAS сервера (если у вас не установлена служба RAS, то выполните ее установку прежде)
- выбираем кодировку файла (обычно "cp866")
- После настроек жмем кнопку получить список кластеров и в случае успеха у нас должны появиться данные, по крайней мере одна новая строка. Если у вас для кластера используется авторизация, тогда укажите имя пользователя и пароль.
- Далее устанавливаем флаг получать детальные записи (вкладка "Свойства/Корзина"). В рамках этого мы сможем получать историческую информацию о всех событиях. Если вам не нужны агрегирующие функции, но детальные записи списка хотите получать, то необходимо добавить в корзину любое свойство без выбора функции агрегации.
- Добавляем к агрегирующим функциям (вкладка "Свойства/Корзина") следующие параметры согласно таблице, ниже:
- Далее установим цветовую раскраску и граничные значения для показателей (вкладка "Цветовая индикация"), в рамках которых мы сможем просматривать на графике агрегации две дополнительные линии уровня и увидим раскраску в таблице данных соответствующую ситуациям находящимся в желтой и в красной зонах. Согласно таблице:
- Жмем сохранить настройки.
3. Выполняем тестовый замер. Для проверки выполнения замера нажимаем кнопку выполнить замер. В результате правильных настроек у нас с вами должны появиться записи в журнале событий замеров.
4. Подключаем в замере регламент.
- для регламентного задания обязательно указываем пользователя, у которого снят запрет на защиту опасных действий.
- время обновления рекомендуем установить в районе 60 секунд (120 секунд максимум)
5. Открываем обработку монитора и проверяем работу.
- Переходим в подсистему замеры и открываем дополнительные обработки;
- Находим "Монитор 1С" и запускаем;
- Выбираем замер и нажимаем обновить данные.
Отображение детальных записей монитора с цветовой индикацией и значениями агрегирующих функций.
Отображение на графике значений агрегирующих функций, с указанными уровнями ограничений желтый и красный.
Видео-урок.
Как это все использовать?
Приведем несколько примеров использования данной информации на практике, продолжаем:
а) Как узнать кто и что запускал? Какое фоновое задание крутилось или крутится сейчас?
В данном случае нам необходимо воспользоваться историей замера или текущей ситуацией монитора. Открываем список сеансов (sessions) и ищем "проблемного" пользователя и его номер сеанса:
Далее открываем рабочую базу, журнал регистрации и ставим отбор по номеру сеанса и отбор по периоду времени этого события
В результате у нас есть понятие что запускалось и какие действия выполнялись или выполняются сейчас.
б) Хорошо или плохо серверу? Кто у нас нагрузил сервер 1С? Кто у нас грузит сервер SQL?
Открываем монитор и начинаем анализировать данные. Можно сделать следующие выводы, что пользователь запустив какой-либо процесс (обработка/фоновое задание) может довольно серьезно снизить производительность базы 1С. На рисунке ниже показаны два графика загрузки процессора и роста счетчика "Захвачено СУБД", на которых прослеживается корреляция.
О чем говорят показатели:
"Захвачено СУБД" - содержит время соединение с СУБД с момента захвата в миллисекундах (у нас преобразовывается к секундам). Характеризует текущую нагрузку сервера СУБД. Чем больше значение и чем больше сумма по этому полю для всех пользователей (очередь захвачено СУБД), нагружен сервер и тем более ему становится хуже. К примеру, кто-то запустил сложный SQL запрос к базе данных.
"Время вызова (текущее)" - содержит интервал времени в миллисекундах (у нас преобразовывается к секундам), прошедший с момента начала обращения, в случае, если сеанс выполняет обращение к серверу 1С:Предприятия. Чем больше значение и чем больше сума по этому полю для всех пользователей (очередь время вызова), тем более нагружен сервер 1С и тем более ему становится хуже. К примеру, кто-то запустил пустой бесконечный цикл, серьезные вычисления.
Большой рост по обоим показателям (выше) - говорит о том, что сервер гарантированно идет на "посадку". К примеру, запускаем процедуру удаление помеченных объектов или замену дублей в рабочее время, посчитать себестоимость и т.п.
в) Оповещение через мессенджеры с помощью Ларисы и предсказание возможных проблем производительности.
Это тема отдельной статьи, но мы поясним основные моменты в кратком изложении.
- Зная значения счетчиков производительности 1С можно сделать некоторые логические выводы. К примеру, если "Захвачено СУБД" от 0 до 60 сек, это норма (low), если от 60 до 300 сек - уже желтый (medium) уровень, а вот если более 300 сек - совсем плохо (high).
- Обладая информацией о связанном поведении наборов можно сделать определенные логические суждения.
- Исходя из предыдущих суждений можно настроить оповещения при переходе из одного состояния в другое (FSM или HFSM). Т.е. если существует большое значение "Захвачено СУБД" и идет рост очереди пользователей, то значит ситуация усугубляется и пора бить в набад.
г) Анализ изменений параметров сервера или базы. Пример: Корректировка количества соединений на процесс. В начале рабочего дня в Москве у нас стали возникать проблемы производительности (недавно перешли на новую подверсию платформы), связанные с резким наплывом пользователей (+200 в течении 30-40 минут), которое потом через 1-2ч снижалось. В результате анализа графиков было установлено, что 1С с запаздыванием (20 минут) отрабатывало запуск новых процессов и в моменты запуска производительность достаточно сильно снижалась.
Графики количества запущенных процессов (rphost.exe) и очереди сеансов к серверу 1С Предприятие (день первый).
В результате было предложено уменьшить количество соединений на кластер на 30% (в совсем новой версии 1С уже появилась возможность заранее создавать резервные процессы). В результате нагрузки связанные с запуском хостов практически исчезли. Количество пользователей и интенсивность работы одинаковая в эти два дня.
Графики количества запущенных процессов (rphost.exe) и очереди сеансов к серверу 1С Предприятие (день второй после изменений настроек).
Дополнительно:
- Фреймворк github.com/Polyplastic/1c-parsing-tech-log/
- Ссылка на обработку проекта МониторRAS_1C.epf (версия конфигурации для работы не ниже 2.4.0.6).
- Решение проблемы быстродействия в ERP на рабочем примере тут вы можете скачать собранную версию конфигурации (.cf)
- 5 простых шагов и 15 минут на разворачивание инструмента мониторинга проблем производительности базы 1С
- За 5 шагов добавляем мониторинг счетчиков производительности серверов MS SQL и 1С
- Мониторинг производительности и искусственный интеллект тут показано как настроить помощника для отправки сообщений в мессенджер.
- Совместимо с 1С Предприятием 8.3.12 (рекомендуем 8.3.14 и выше)