Мы расскажем и покажем, как добавить данные счетчиков производительности серверов 1С и MS SQL в нашу базу мониторинга за 15 минут. Приведем список наиболее важных из них, опишем основные особенности.
Простая установка и настройка - за 15 минут рабочее решение для "неограниченного" количества баз
Ничего лишнего и никакой "магии" - используются возможности платформы
Дружественный интерфейс - только то что нужно
Информация в реальном времени - ошибки конфигурации, блокировки, длительные запросы, счетчики производительности и др.
Бесплатно - проект с открытым исходным кодом на GitHub
Структура статьи:
В первой части статьи мы опишем основные шаги по подключению счетчиков и настройке загрузки данных в базу мониторинга производительности. Если же Вам лень читать и Вы любите смотреть и слушать, то можно перейти к видео-уроку и посмотреть небольшой 5 минутный ролик по выполнению необходимой последовательности действий и повторить при необходимости. Все процедуры просты и максимально прозрачны. Поехали!
1. Подключим счетчики производительности сервера под ОС windows.
Вариантов включения счетчиков производительности достаточно много. Мы с вами рассмотрим самый простой и наглядный без скриптов и других компонентов и приложений.
а) Открываем командную строку и вводим "perfmon.msc".
б) Выбираем добавить и переходим на вкладку.
в) Добавляем счетчики согласно таблицы ниже.
г) В настройках указываем формат файла ".csv"
д) Можем запустить и получим уже входные данные. Но работать сбор данных будет до выхода из системы, о настройке регламентного задания см. п3.
Внимание! Пользователь под которым будут запускаться счетчики должен обладать необходимыми правами и входить в группу "Perfomance monitor group".
Таблицу с основными на наш взгляд счетчиками приведем таблицу в этой статье. Если нужно больше информации, то к вашим услугам всемирная сеть и возможно кто-то из комментаторов к статье приведет какие-либо предложения и факты.
Таблица счетчиков для Windows сервера
Показатель
Группа
Синоним
Описание
Значение
Free Megabytes
Logical Disk
\Логический диск\Свободно мегабайт
Показывает объем незанятого пространства на диске в мегабайтах
Много больше 0 Мбайт для системного диска, дисков файлов БД и служебных файлов 1С
Available Mbytes
Memory
\Память\Доступно МБ
Объем физической памяти в мегабайтах, немедленно доступной для выделения процессу или для использования системой. Эта величина равна сумме памяти, выделенной для кэша, свободной памяти и обнуленных страниц памяти
Много больше 0 Мбайт
Page Reads/sec
Memory
\Память\Чтений страниц/с
Число операций чтения диска при получении страниц виртуальной памяти для разрешения ошибок страницы. При выполнении одной операции чтения могут быть получены одновременно несколько страниц. Ошибка чтения страницы возникает при обращении процесса к виртуальной памяти, не принадлежащей рабочему множеству или физической памяти, и должна быть извлечена с диска
Page Writes/sec
Memory
\Память\Операций вывода страниц/с
Счетчик записи страниц на диск, выполняемой для освобождения места в оперативной памяти. Страницы записываются на диск только в том случае, если они были изменены в оперативной памяти, поэтому они вероятнее всего содержат данные, а не программный код. Этот счетчик отображает число операций записи, без учета числа страниц, записываемых при каждой операции. Этот счетчик показывает разницу значений между двумя последними снятыми показаниями, деленную на длительность интервала измерения.
Bytes Total/sec
Network Interface
\Сетевой интерфейс\Всего байт/с
Скорость, с которой происходит получение или посылка байт через сетевые адаптеры, включая символы обрамления (framing characters)
Не более 65% от пропускной способности сетевого интерфейса
Avg. Disk Queue Length
Physical Disk
\Физический диск\Средняя длина очереди диска
Среднее общее количество запросов на чтение и на запись, которые были поставлены в очередь для соответствующего диска в течение интервала измерения
Не более 2 на каждый из параллельно работающих дисков
Avg. Disk sec/Transfer
Physical Disk
\Физический диск\Среднее время обращения к диску (с)
Время в секундах, затрачиваемое в среднем на один обмен данными с диском
В среднем 10 мс; В пиках не более 300 мс
% Processor Time
Processor
\Процессор\% загруженности процессора
Доля времени, которую процессор тратит на обработку всех потоков команд, кроме простаивающего. Этот счетчик является основным показателем загруженности процессора. Он показывает среднее значение занятости процессора в течение интервала измерения
Не более 70-80% в течении длительного времени
Processor Queue Length
System
\Система\Длина очереди процессора
Текущая длина очереди процессора, измеряемая числом ожидающих потоков. Все процессоры используют одну общую очередь, в которой потоки ожидают получения циклов процессора. Этот счетчик не включает потоки, которые выполняются в настоящий момент. Этот счетчик отражает текущее значение, и не является средним значением по некоторому интервалу времени
Не более 2 на каждое ядро процессора
2. Подключим счетчики производительности SQL сервера под ОС windows.
Если у вас SQL и службы 1С стоят на одном сервере, то вы можете совместить настройки логов в один проект или в общую папку.
Операции те же самые, что и в п.1. + добавляем таблицу для счетчиков SQL сервера.
Таблица счетчиков для SQL сервера (синонимы по русски иногда это нечто).
Таблица счетчиков для MS SQL сервера
Показатель
Группа
Синоним
Описание
Значение
Table Lock Escalations/sec
Access Methods
Методы доступа\Укрупнений блокировок таблиц в секунду
Количество раз, когда блокировки таблицы были укрупнены
Стремящееся к 0
Page life expectancy
Buffer Manager
Диспетчер буфера\Время без ссылки для страницы расширения
Количество секунд, в течение которых страница остается в буферном пуле без ссылок на нее
Не менее 300 с
Buffer cache hit ratio
Buffer Manager
Диспетчер буфера\Коэффициент обращений к буферному кэшу
Процент найденных в буферном пуле страниц, что исключило необходимость чтения с диска
Стремящееся к 100%
Average Latch Wait Time (ms)
Latches
Latches\Среднее время ожидания кратковременной блокировки
Среднее время ожидания (мс) для запросов кратковременной блокировки
Стремящееся к 0 мс
Average Wait Time (ms)
Locks
Locks\Время ожидания блокировки (мс)
Среднее время ожидания (в миллисекундах) для всех ждавших запросов блокировки
Стремящееся к 0 мс
Lock Waits/sec
Locks
Locks\Запросов блокировок в секунду
Количество запросов блокировки, которые не были выполнены немедленно и ожидали предоставления блокировки
Стремящееся к 0
Lock Timeouts/sec
Locks
Locks\Превышений времени ожидания блокировки в секунду
Количество запросов блокировки, время ожидания которых истекло, включая запросы блокировок NOWAIT.
Стремящееся к 0
Number of Deadlocks/sec
Locks
Locks\Количество взаимоблокировок в секунду
Количество запросов блокировки, приведших к взаимоблокировкам
Стремящееся к 0
Cache Hit Ratio
Plan Cache
Plan Cache\Коэффициент попадания в кэш
Соотношение между попаданиями в кэш и обращениями к кэшу
Стремящееся к 100%
Longest Transaction Running Time
Transactions
Transactions\Время выполнения самой длинной транзакции
Наиболее продолжительное время выполнения какой-либо транзакции в секундах
Для OLTP систем не должно быть высоким
Transactions
Transactions
Transactions\Транзакции
Общее количество активных транзакций.
3. Настроим планировщик заданий для автоматического запуска счетчиков.
а) Открываем командную строку и вводим "taskschd.msc"
б) Переходим по следующему пути: "Microsoft\Windows\PLA"
в) Добавляем задание. Указываем способ запуска "при старте системы", запускать при ошибках и сохраняем.
4. Добавим задание загрузки данных в базу мониторинга.
а) Открываем базу мониторинга производительности
б) Переходим в подсистему "Анализ ТЖ" и открываем журнал "Замеры"
в) Добавляем новый замер и указываем:
- путь к каталогу с логами счетчиков;
- тип "Perfomance monitor";
- загружать online и время работы регламентного задания;
- можем указать имя сервера - реквизит оборудование.
г) все готово и первые замеры скоро появятся в базе.
5. Анализируем результат операций.
Теперь просмотреть данные можно в журнале "События замера" в форме таблицы или графически АРМ "Графики Perfomance monitor".
Видео-урок.
В этом видео-уроке мы с вами проведем необходимые настройки и посмотрим результаты на примере искусственных ситуаций.
Видео-урок
Что дальше?
У нас к замерам счетчиков perfomance counter уже есть замеры производительности по данным технологического журнала (рассматривалось в предыдущей статье). Теперь можно идти дальше и рассмотреть возможности определения проблем, аномалий в поведении оборудования, "особых"/предельных режимов работы с использованием нейронных сетей. Ну, и конечно не забудем об оповещениях о происходящих или надвигающихся критичных ситуациях. Это все позволит повысить качество предлагаемого сервиса без суровых затрат.
Ставьте, настраивайте систему для сбора данных. Они вскоре потребуются для обучения искусственного интеллекта. А также следите за информацией о проекте.
Дополнительно.
Для тех кто по каким-то причинам не хочет или не может подключиться к проекту через EDT, но хочет посмотреть или попробовать - есть возможность скачать обновленную версию файла конфигурации 2.0.3.0 из статьи Решение проблемы быстродействия в ERP на рабочем примере.
Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С.
Анализ текущих зааросов на sql, ожиданий, конвертация запроса в 1с и рекомендации где может тормозить
Встал вопрос: как быстро удалить строки из ТЗ? Рассмотрел пять вариантов реализации этой задачи. Сравнил их друг с другом на разных объёмах данных с разным процентом удаляемых строк. Также сравнил с выгрузкой с отбором по структуре.
При переводе типовой конфигурации 1C ERP/УТ/КА на PostgreSQL придется вложить ресурсы в доработку и оптимизацию запросов. Расскажем, на что обратить внимание при потерях производительности и какие инструменты/подходы помогут расследовать проблемы после перехода.
Казалось бы, КОРП-системы должны быть устойчивы, быстры и надёжны. Но, работая в рамках РКЛ, мы видим немного другую картину. Об основных болевых точках КОРП-систем и подходах к их решению пойдет речь в статье.
Очень немногие из тех, кто занимается поддержкой MS SQL, работают с хранилищем запросов. А ведь хранилище запросов – это очень удобный, мощный и, главное, бесплатный инструмент, позволяющий быстро найти и локализовать проблему производительности и потребления ресурсов запросами. В статье расскажем о том, как использовать хранилище запросов в MS SQL и какие плюсы и минусы у него есть.
Кто не любит убирать мусор? Думаю, практически все, а вот в Postgres это обязательный ритуал для эффективной работы. Как эффективно настроить уборку за 1С в Postgres, можно прочитать в этой статье и еще раз задуматься о бесплатности Postgres.
Многие знают, что для ускорения работы запроса нужно «изучить план». При этом сам план обычно обескураживает: куча разноцветных иконок и стрелочек; ничего не понятно, но очень интересно! Аналитик производительности Александр Денисов на конференции Infostart Event 2021 Moscow Premiere рассказал, как выполняется план запроса и что нужно сделать, чтобы с его помощью находить проблемы производительности.
(1)
1. Мы нацелены на использования возможностей 1С (у нас в команде все знают 1С и у всех есть 1С (глобально в целом), а вот с эластиком не так все гладко).
2. Решение поставленных вопросов в конце статьи можно рассматривать как пробу "пера". В дальнейшем нейронные сети планируется применить на базе ERP, УТ, КА решения экономических и других вопросов.
3. Сейчас мы моделируем и проверяем использование НС в вопросах мониторинга производительности серверов. Потенциально для нас значительно увеличится качество нашей услуги по предоставлению сервиса нашему потребителю услуги.
Добрый день!
Сервера 1С и SQL расположены на разных компьютерах. Пытаюсь организовать мониторинг на отдельной машине. При попытке подключения к серверам (общая локальная сеть, в домене) выдаёт ошибку.
Подскажите, в чём может быть проблема?
По умолчанию сборщик создается от имени NT AUTHORITY\СИСТЕМА (локальной учетки). Нужно создать сборщик для любого локального счетчика, затем в его свойствах сменить пользователя в поле "От имени" на закладке Общие на доменного (как вариант). Тогда счетчика удаленного ПК станут доступны.
Отдельное спасибо за колонку "Синоним", мне как человеку только начавшему изучать тему счетчиков, крайне неудобно было определять название счетчиков на русифицированной системе, приходилось выгружать в шаблон и смотреть xml)
ошибочка в таблице с счетчиками sql:
Buffer Manager\Page life expectancy = диспетчер буфера\Примерный срок хранения страницы, а не Диспетчер буфера\Время без ссылки для страницы расширения
(12) Все плагины лежат в "parsing-tech-log-plugins", parsing-tech-log-plugins Совсем скоро будет обновление релиза с переработанным интерфейсом и некоторыми обработками (в частности график), т.ч. следите за релизами.
(14) Сейчас суммарно не посчитать. Такой функционал можно добавить, к примеру, вынося алгоритм в обработку и добавив настройку - к замеру новое поле, которое может суммировать какие-то числовые показатели (агрегировать).
Можете добавить на GIT проекта новую задачу.
Не, мне как раз нужно, чтобы этот показатель отображался отдельно для каждого диска.
Например:
у меня 2 диска - в перфмоне добавляю длину очереди для каждого.
В замерах отображается только один показатель - длина очереди, но не указано для какого диска.
(16) Параметры должны быть разные. В наименованиях должно содержаться имя диска, похоже на ошибку обработки файла. Скиньте кусочек файла монитора с наименованиями полей загрузки. Посмотрим.