Настройка perfmon для 1с

Обновлено: 08.07.2024

Предположим, что программа 1С работает с замедлениями или попросту «тормозит». Как понять, в чем проблема? Куда смотреть? Как правильно определить «узкое место»?

Советы по ускорению работы 1С 8.3 в файловом режиме Советы по ускорению работы 1С 8.3 в файловом режиме

Рекомендации на основе часто встречающихся ошибок:

1. Настройки антивируса «по умолчанию» — ошибка.

Уберите каталоги с исполняемыми модулями и базами 1С из проверки либо добавьте исключения по маске, как рекомендуют специалисты. При правильной настройке — антивирусное ПО практически не мешает.

Укажите в списке исключений:

  • для 1С v7.7 — маски *.md, *.dbf, *.cdx ;
  • для 1С v8 — маску 1Cv8*.1C? (1Cv8.1CD / 1Cv8tmp.1CD / 1Cv8.1CL / 1Cv8tmp.1CL) и файлы 1Cv8.pfl и 1Cv8.log , маски *.epf, *.dt, *.cf, *.cfu ;
  • временные файлы, используемые 1С: Предприятие.

2. Режим производительности . Если нужна скорость, сделайте это обязательно на клиентских и серверных компьютерах.

Включить режим можно в 2-х местах: через BIOS ( Отключить режимы C1, C1E, Intel С-state — C2, C3,C4; перевести в значение «Disabled» ) и в настройках Windows ( «Панель управления — Электропитания — Режим «Высокая производительность» ).

Можно как угодно ругать 1С, но если пользователям нужна скорость — включайте режим высокой производительности. Пусть ПК будет больше греться, потреблять больше энергии и сильнее шуметь вентиляторами. Это плата за производительность.

3. Включите Turbo Boost , если ваш процессор поддерживает эту функцию.

Максимальный эффект от Turbo Boost проявляется, когда включены C-State. Необходимо проверить влияние параметра для вашего варианта 1С (файловый режим или клиент-сервер). Например, по тесту Гилева.

Условия активации Turbo Boost:

  • BIOS QPI L0s, L1 — « Disabled »;
  • BIOS Demand Scrubbing — « Disabled »;
  • BIOS Intel SpeedStep — « Enabled »;
  • BIOS Turbo Boost — « Enabled »;
  • Windows « Панель управления — Электропитание — Высокая производительность ».

4. Следующее важное звено — сеть .

Перед началом тестирования:

  • убедитесь, что iperf между двумя компьютерами показывает всю полосу;
  • выполнены рекомендации с сайта Гилева ;
  • скопируйте один большой файл (5-10 Гб) по локальной сети и замерьте скорость копирования.

Есть несколько способов, как задать путь к сетевой базе 1С: по имени сервера, по ip-адресу и с подключением сетевого диска (net use). Правильный вариант только один:

Не ip-адрес, а имя сервера. Если сервер не виден по имени, добавьте его в DNS или в файл hosts. Обращение к серверу должно быть по имени, а путь в клиенте 1С — через букву сетевого диска и название каталога.

5. Проверьте формат базы 1С и протестируйте версию 8.3.8 .

Выводы для файлового режима работы:

  1. Локальная сеть должна быть настроена (выполнен тюнинг), а также правильно прописан путь в 1С. Ограничением при работе нескольких (>10) пользователей уже будет выступать не сеть, тут 1 Гбит ещё хватит, а блокировки при многопользовательской работе.
  2. Платформа 1C 8.3 в разы требовательнее к грамотной настройке сети. Влиять может все: деинсталляция (а не просто отключение) антивируса, удаление лишних сетевых протоколов, смена драйверов, от физического удаления второй сетевой карты на сервере.
  3. Настройки антивирусов по умолчанию снижают производительность. Если разрешить процессу 1cv8 делать все, скорость такая же, как и без антивируса.

⚡ Подписывайтесь на канал или задавайте вопрос на сайте — постараемся помочь всеми техническими силами. Безопасной и производительной работы в Windows и 1С.


Заполняем реквизиты доступа к ранее созданной БД test:


Указываем учетную запись, под которой будет осуществляться подключение к БД (тут все зависит от ваших предпочтений, доменная или иcпользовать учетную запись MS SQL):


Далее можно, ничего не меняя, нажимать "next". В конце будет итоговое окно:


Нажимаем «Test Data Source» и получаем заветное: "TESTS COMPLETED SUCCESSFULLY!". Как показала практика, наличие этой прекрасной надписи не означает отсутствия проблем в дальнейшем.

Проверяем, что новый источник появился:


Этап II. Настройка счетчиков производительности.

Создаем новый набор счетчиков.

Идём в контрольную панель и вызываем «Administrative Tools» (Control Panel\All Control Panel Items\Administrative Tools)

Открываем «Performance Monitor» и в раздел «User Defined» добавляем новую коллекцию счетчиков:


Выбираем «Create manually (Advanced)»:


Указываем, что мы хотим логировать именно счетчики производительности:


На следующем экране представлены все возможные счетчики. Для примера возьмем один:

В разделе «Processor» есть счетчик «% Processor time». В нижнем списке уточняем, какое ядро хотим мониторить. Для примера выбираем «Total» и нажимаем «Add». Это позволит отслеживать в процентах общую нагрузку по всем ядрам.


Указываем интервал сбора данных. Выбираем, к примеру, 15 секунд.


Далее без изменений, поэтому можно сразу жать "финиш". В итоге получаем набор счетчиков, но он пока не запущен, и запускать его пока что рано.


Перенастраиваем набор на БД MS SQL

Заходим в DataCollector01 и перевыбираем параметр Log format с Binary на SQL


Далее в параметре «Data source name» выбираем созданный в первом разделе провайдер


Идём в настройки New Data Collector Set. На закладке «Schedule» добавляем задание по старту счетчиков на ежедневной основе.


На закладке «Stop Condition» выставляем условия окончания сбора счетчиков. Я выбрал в качестве ограничения размер БД в 10 Гб.


Сохраняем и з апускаем счетчики


Проверяем, что данные начали собираться в БД MS SQL:


Этап III. Получение данных и их обработка в 1С

Теперь нужно получить данные из этой БД и как-то интерпретировать. Для этого нам понадобятся 2 функции:

Подключение к БД:

Получение данных из БД

В описываемом примере используется только 1 счетчик, но на самом деле их может быть много, поэтому сначала получим их список из таблицы [CounterDetails]:

Результат разбиваем на 3 списка (можно одним, но не наглядно):

  1. Список объектов контроля (ОЗУ, процессор и т.д.) [ObjectName]
  2. Список счетчиков [CounterName]
  3. Список экземпляров (Например нагрузку на процессор можно отслеживать в общем, а можно по ядрам) [InstanceName]

В итоге, выбрав нужное значение, в каждом из списков можно получить ID, по которому мы получим данные из таблицы [CounterData]. Помимо ID в условии указываем интервал времени, за который мы хотим получить информацию:

Для построения графика достаточно выбрать CounterDateTime и CounterValue.

В итоге получилась обработка следующего вида.


Для удобства помимо графика на форму выведены таблицы результатов запросов.

Настройки подключения к БД видны на закладке «Настройки». В событии"ПриСозданииНаСервере" можно прописать их автозаполнение


При контроле сервера каждому требуется свой состав счетчиков. Каждый для себя определяет границы счетчиков, превышение которых не желательно (это могут быть рекомендованные показатели или выбранные для себя эмпирически). Чтобы всё это не держать в голове, было принято решение вести в обработке таблицу соответствия:

1. Имя счётчика (в нижнем регистре)

2. Значение которое будет отчерчено на графике зеленой линией

3. Описание счетчика.

Для примера, в обработке заполнил полностью для рассматриваемого счетчика. Результат видно на основном скрин-шоте:

Никаких уникальных технологий не применялось, всё сделано именно на уровне "для чайников", из-за этого кому-то код может показаться "не на уровне". Так что пожелания и к онструктивная критика - приветствуются.

Если где-то описал сумбурно и требуется больше пояснений или кода - готов откорректировать.

Специальные предложения

Electronic Software Distribution

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

а чем штатный перфоманс монитор не устраивает? через него графики не комильфо смотреть? (1) Gilev.Vyacheslav, самый главный ответ здесь - (2)
. мониторить сразу несколько серверов. (4) Самьій главньій тут вопрос - это смотреть данные в динамике.
Я еще собираю статистику по журналу регистрации, ну и счетчики, которые сервер 1с отдает с помощью утилиты rac/ras (отвязался от com, но привязался к 8.3), все это храниться в grpaphite + elasticsearch, ну и отображается с помощью graphana. График в обработке - только визуализация, сделана скорее для демонстрации.
Причина сбора данных в БД:
1. Объем хранимой информации. Например, данные за месяц, необходимых мне счетчиков, в файлах занимают 17 Гб, в БД 3 месяца занимают 6 Гб.
2. При сбоях сервера или при сильной нагрузке наблюдались "пробелы" в файле счетчика. При сборе в БД пока что такой проблемы не обнаружено
3. Использование T-SQL для поиска необходимых данных. Например, сколько раз счетчик превышал заданное значение в течение дня/недели/месяца и тому подобное. Т.е. более гибкий и удобный анализ собранных данных.
4. Можно собирать данные чаще, чем раз в 15 секунд и получить возможность автоматизации реакции на события на сервере.
5. Можно сделать “dashboard” из 10 графиков для мониторинга производительности сервера получая информацию об оперативной памяти, процессоре, латчах или блокировках, или мониторить сразу несколько серверов.

особенно меня радуют статьи "в интернете не нашел, поэтому. " так и хочется спросить сколько секунд искал

теперь по статье - открываете системный монитор действия - свойства - источник - базы данных.
чтобы снимать данные каждую секудну идете рядом в свойствах - общие - элементы диаграммы - съем показаний каждые: 1 секунда
интервал анализируемых данных выбирается свойства - источник - диапазон времени

как говориться без комментариев

про сбои данных полная чушь, точно также данные и в базу могут не попасть
показания можно писать в файлы периодически изменяя файл, чтобы гарантировать целостность большей части данных

при указании нескольких источников точно также можно посмотреть графики с разных серверов

(8) Gilev.Vyacheslav, Суть стаьи не конкурировать с другими сервисами, а показать что и как можно сделать.

Меня не интересует отправка данных на сторонние ресурсы + черный ящик, который не ясно как работает (как минимум по соображениям инф. безопасности) . В нем есть описание счётчиков и обоснование граничных условий? Ссылки на MSDN? + стоимость 10 000 руб. для юр. лиц.

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

(10) т.е. код так и не посмотрели, но решили порассуждать "не читал, но осуждаю"
похвальный подход, вопросов больше нет

(11) DenIv, именно потому что и наш код, и многие сторонние обработки уже много раз заново изобретались - данная статья нового контекста не несет на мой взгляд

"За пользование своим сервисом вы просите денег. " ну 100 рублей мы просим потому что когда 3 года сервис работал бесплатно, люди настраивали десятки гигабайт в месяц к нам заливать, а при этом не разу не пользовались, поэтому мы сделали скорее психологический барьер чтобы ненужную работу наши сервера не делали, если 100 рублей - это как цуп за 84 000 руб., то готовы взять 1 рубль или даже бесплатно, главное что вы обязуетесь выключить заливку, если не будете заглядывать больше месяца

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

данные за месяц, необходимых мне счетчиков, в файлах занимают 17 Гб
Это какие такие счетчики занимают 17Гб за месяц?! Вы показания вообще всех счетчиков пишете или просто по большому количеству серверов?
Показания 25 основных счетчиков (Система, дисковая, MS SQL) одного сервера за полгода - меньше полутора гигабайта в общей папке скай-драйв - 6 файлов в сутки по 1,6 Мб.
В 08:00 автоматом стартуют, весь день пишутся, после 20:00 выключаются. В случае сбоя - оповещают.
Можно было и в СУБД писать, но скай-драйв по доступности универсальней, в любой момент с любого устройства можно открыть и изучить. А для продвинутого мониторинга есть ЦУП. Это какие такие счетчики занимают 17Гб за месяц?! Вы показания вообще всех счетчиков пишете или просто по большому количеству серверов?

PhysicalDisk(_Total)\% Disk Read Time
PhysicalDisk(_Total)\% Disk Write Time
PhysicalDisk(_Total)\Avg. Disk Bytes/Read
PhysicalDisk(_Total)\Avg. Disk Bytes/Write
PhysicalDisk(_Total)\Current Disk Queue Length
PhysicalDisk(_Total)\Disk Read Bytes/sec
PhysicalDisk(_Total)\Disk Write Bytes/sec
PhysicalDisk(ххх)\Avg. Disk sec/Read по 3-м дискам
PhysicalDisk(ххх)\Avg. Disk sec/Write по 3-м дискам
Processor(_Total)\% Processor Time
Processor(_Total)\DPCs Queued/sec

При наличии 11 дисков и 16 CPU занимает за сутки 390 МБ.

Для продвинутого мониторинга есть много продвинутых систем, например SCOM.
А что ЦУП начали раздавать дешевле 100 000 рублей? При наличии 11 дисков и 16 CPU занимает за сутки 390 МБ.
Забавно, я привел статистику с большим числом счетчиков для сервера с 16 CPU (8 аппаратных), 2 массива (9 дисков из которых 6 SSD), счетчики пишутся в двоичный формат раз в 10 сек. Ну и как я уже писал пишутся не нон-стоп, а с 8:00 до 20:00.
Единственный, на мой взгляд, недостаток - пока файл сбора данных не закроется нельзя его открыть для анализа. В этом плане запись в СУБД дает преимущество, можно смотреть данные почти в реальном времени. У вас сколько транзакций? А операций ввода-вывода? Если 1 диск и 1 CPU - то 1 Мб за глаза.

(2) Gilev.Vyacheslav
Вячеслав, стесняюсь спросить: Ваш сервис, разве не по этому же принципу работает? Вы какими мотивами руководствовались когда изобретали свой велосипед?
К чему это негатив? Идея не нова, действительно, но в интернетах, кроме Ваших сервисов, которые собирают по тому же принципу показания, но только в Ваши БД, и ЦУПа, ничего вменяемого БЕСПЛАТНО действительно нет.
Ваш HardwareClient82 - это конфигурация собрал что-то отправил куда-то, получил ответ с истиной. Логика совершенно другая. За пользование своим сервисом вы просите денег.
Здесь все прозрачно, не кофа, а обработка, денег не стоит.
Процитирую. Вас же: - "как говориться без комментариев "
PS. Ваш авторитет в данной области ни у кого не вызывает сомнений, однако, именно поэтому Ваша позиция : все дерьмо я Д`артаньян смотрится как-то странно

(2) h00k ЦИБ - стоит нормальных денег, плюс без подготовки и обучения понять что-то в ЦУПе сложно (ИМХО).

platonov.e; Nikola_N; user792548; igor.ofitserov; ivv1970; shalimski; murat_; Vary; AlexO; Babuin; JohnyDeath; + 11 – Ответить Спасибкi. Однозначно плюс.
Можно просто пустую SQL-ую базу создать.
И вместо Com-соединенения использовать внешние источники данных. Единственная неприятность - в таблице CounterData у поля CounterDateTime тип char(24) - это по идее дата + время + миллисекунды замера - там только 23 символа. Приходится во внешнем источнике принудительно указывать 23 символа. ЦКК вроде умеет это делать же? Счетчики я им точно собирал, с графиками, в разных режимах. Так данные тоже пробовал данные собирать, самый прикол - забыл модель базы из фулл в симпл поставить - в считаные часы сожрало все логами. (0) без относительно к велосипеду, но не пойму почему НЕ внешние источники данные, а ADO.DB, судя по интерфейсу у вас уже есть объект внешний источник. И тогда настройка была бы штатной от 1С. (13) lustin, возможно я не правильно понял вопрос, но если речь про объект метаданных, то в таком случае придётся привязываться к определенной конфигурации 1С

научитесь лучше пользоваться SQL Server Profiler
там всё есть. с отборами

(16) Serg O.,не могли бы на простом примере рассказать как с помощью SQL Server Profiler получить информацию по IOPS или загруженности процессора за прошлый день, особенно если эта нагрузка не связана ms sql. а еще лучше см. "Настольная книга 1С:Эксперта по технологическим вопросам" А вот интересно, 1С, когда делает платформу, хотя бы эту свою книгу читает? Притом, что там 9/10 - набор советов от интернет-сообщества.

Отличная идея.
Однозначно ПЛЮС

Еще бы лучше в настройках и в запросах имя базы.
А то ругается ))

Не запускается сбор, ошибка «Вызов SQLAllocConnect завершился в ошибкой %1»

Журнал показал
Источник PDH, Код события 3041, в описании ошибки вот это:
Вызов SQLAllocConnect завершился с ошибкой [Microsoft][ODBC SQL Server Driver][SQL Server]Ошибка входа пользователя ""…

БД и Сервер на котором запускается сбор, не объединены в домен. Сборщик стартует от имени локальной учетки, как быть?

Анализ загруженности оборудования для Windows

Для своевременного обнаружения узких мест в оборудовании необходимо проводить постоянный мониторинг загруженности всех основных аппаратных компонентов системы. К ним в первую очередь относятся:

  • Все рабочие сервера кластера 1С:Предприятия
  • Сервер СУБД
  • Клиентские рабочие станции, работающие под большой нагрузкой

Для каждого из этих компьютеров необходимо настроить сбор информации по загруженности оборудования.

Сбор информации по загруженности оборудования

Во время работы системы рекомендуется осуществлять постоянный мониторинг и запись основных показателей загруженности оборудования. Для этого можно использовать разные средства, в данной статье будет рассказано, как это можно сделать с помощью Performance Monitor, входящего в состав операционной системы Windows, и ЦКК – Центра контроля качества, типовой конфигурации, входящая в Корпоративный инструментальный пакет.

Настройка сборка данных в Performance Monitor (Windows Server 2012 R2)

Для запуска Performance Monitor выберите соответствующий пункт меню раздела Administrative Tools контрольной панели Windows.

Добавьте в список наборов счетчиков (Data Collector Sets) новый набор (User Defined – пользовательский):


Настройка будет осуществляться вручную – в диалоговом окне нужно выбрать соответствующий пункт и нажать «Далее»:


Выберите, какие именно данные будут собираться. Нас интересуют Счетчики производительности:


На следующем шаге выбираются сами счетчики, которые будут входить в набор.



Мы рекомендуем в обязательном порядке собирать данные по следующим счетчикам:

"\Processor(_Total)\Interrupts/sec"
"\LogicalDisk(_Total)\% Free Space"
"\Memory\Available Mbytes"
"\PhysicalDisk(_Total)\Avg. Disk Queue Length"
"\PhysicalDisk(_Total)\Avg. Disk Sec/Read"
"\PhysicalDisk(_Total)\Avg. Disk Sec/Write"
"\Processor(_Total)\% Idle Time"
"\Processor(_Total)\% Processor Time"
"\Processor(_Total)\% User Time"
"\System\Context Switches/sec"
"\System\File Read Bytes/sec"
"\System\Context Switches/sec"
"\System\File Read Bytes/sec"
"\System\File Write Bytes/sec"
"\System\Processes"
"\System\Processor Queue Length"
"\System\Threads"

Состав счетчиков может меняться в зависимости от роли компьютера. Например, для сервера приложений 1С:Предприятие к перечисленным выше стоит добавить показатели работы процессов 1с:Предприятие:

"\Process("1cv8*")\% Processor Time"
"\Process("1cv8*")\Private Bytes"
"\Process("1cv8*")\Virtual Bytes"
"\Process("ragent*")\% Processor Time"
"\Process("ragent*")\Private Bytes"
"\Process("ragent*")\Virtual Bytes"
"\Process("rphost*")\% Processor Time"
"\Process("rphost*")\Private Bytes"
"\Process("rphost*")\Virtual Bytes"
"\Process("rmngr*")\% Processor Time"
"\Process("rmngr*")\Private Bytes"
"\Process("rmngr*")\Virtual Bytes"

Обратите внимание, что имена счетчиков могут незначительно отличаться в зависимости от версии вашей операционной системы

Рекомендуемая частота получения значений для рабочей системы – один раз в 15 секунд. В нагрузочных тестах рекомендуем собирать счетчики чаще, например, один раз в 1 секунду, т.к. длительность каждого непрерывного нагрузочного теста обычно не превышает десятка часов, а анализировать более детальные данные удобнее.По окончании выбора нажмите «Далее», укажите директорию хранения логов, при необходимости – пользователя, от имени которого будет запускаться процесс сборщика, и сохраните набор.

Откройте для дальнейшего редактирования его свойства (например, кликнув по нему в списке двойным щелчком мыши):


Можно выбрать формат файла логирования: бинарный удобен, если планируется анализировать графические данные, CSV – если планируется как-либо программно обрабатывать данные. В данном примере выбран бинарный.


На закладке «Files» можно настроить шаблон имени файлов и режим записи. Для сохраненного набора также можно настроить расписание и задать ограничения и условия окончания сбора.



В данном случае замер не стартует автоматически, но на продуктивных площадках рекомендуется не забыть настроить планировщик задач на автозапуск выбранного счетчика, например, каждый час, если сбор данных ещё не запущен.

После сохранения можно запустить замер (при помощи кнопки Start контекстного меню).

Команда создания набора будет выглядеть так:

logman create counter 1C_counter -f bincirc -c "\Processor(_Total)\Interrupts/sec" "\LogicalDisk(_Total)\% Free Space" "\Memory\Available Mbytes" "\PhysicalDisk(_Total)\Avg. Disk Queue Length" "\PhysicalDisk(_Total)\Avg. Disk Sec/Read" "\PhysicalDisk(_Total)\Avg. Disk Sec/Write" "\Processor(_Total)\% Idle Time" "\Processor(_Total)\% Processor Time" "\Processor(_Total)\% User Time" "\System\Context Switches/sec" "\System\File Read Bytes/sec" "\System\Context Switches/sec" "\System\File Read Bytes/sec" "\System\File Write Bytes/sec" "\System\Processes" "\System\Processor Queue Length" "\System\Threads" -si 5 -v mmddhhmm

Анализ сохраненного замера

Для просмотра данных откройте бинарный файл замера .blg, по умолчанию Windows откроет такой тип при помощи Performance Monitor:


Выделить график, относящийся к конкретному счетчику, можно, встав на линию графика либо на строку счетчика в списке снизу. Для него при этом отобразятся среднее, минимальное, максимальное и последнее значение за период замера:


Интерес представляют, как правило, среднее значение и «пики» - максимум / минимум в зависимости от смысла счетчика.

Ниже в таблице приведены описания и предельные значения некоторых из них:

В первой части статьи мы опишем основные шаги по подключению счетчиков и настройке загрузки данных в базу мониторинга производительности. Если же Вам лень читать и Вы любите смотреть и слушать, то можно перейти к видео-уроку и посмотреть небольшой 5 минутный ролик по выполнению необходимой последовательности действий и повторить при необходимости. Все процедуры просты и максимально прозрачны. Поехали!

1. Подключим счетчики производительности сервера под ОС windows.

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

а) Открываем командную строку и вводим "perfmon.msc".

б) Выбираем добавить и переходим на вкладку.

в) Добавляем счетчики согласно таблицы ниже.

г) В настройках указываем формат файла ".csv"

д) Можем запустить и получим уже входные данные. Но работать сбор данных будет до выхода из системы, о настройке регламентного задания см. п3.

Внимание! Пользователь под которым будут запускаться счетчики должен обладать необходимыми правами и входить в группу "Perfomance monitor group".

Таблицу с основными на наш взгляд счетчиками приведем таблицу в этой статье. Если нужно больше информации, то к вашим услугам всемирная сеть и возможно кто-то из комментаторов к статье приведет какие-либо предложения и факты.

2. Подключим счетчики производительности SQL сервера под ОС windows.

Если у вас SQL и службы 1С стоят на одном сервере, то вы можете совместить настройки логов в один проект или в общую папку.

Операции те же самые, что и в п.1. + добавляем таблицу для счетчиков SQL сервера.

Таблица счетчиков для 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".



Видео-урок.

В этом видео-уроке мы с вами проведем необходимые настройки и посмотрим результаты на примере искусственных ситуаций.

Для замера показателей мониторинга производительности в OS Windows мы используем performance monitor (perfmon). Добавляем необходимые счетчики мониторинга и включаем замер, через требуемый интервал времени можем проанализировать результат.

При этом для текущего просмотра загруженности оборудования, можно использовать и текущий монитор загруженности из диспетчера задач.
Мониторинг загруженности оборудования. Resource monitor Мониторинг загруженности оборудования. Resource monitor

Когда используем performance monitor

  • Для анализа текущей загруженности
  • Расследования пиков по жалобам пользователей
  • При нагрузочном тестировании.

Основные счетчики performance monitor для 1С

Мониторинг загруженности оборудования. Performance monitor Мониторинг загруженности оборудования. Performance monitor
  1. Процессор\Processor(_Total)\% Processor Time (от 0 до 100).
    \System\Processor Queue Length (не более 2).
  2. Память\Memory\Available MBytes (от 0 до общего объема).
    \Memory\Pages/sec (если более 5, то анализируем).
    \Memory\Page Faults/sec (как часто страницы RAM в нерабочем состоянии).
  3. Диск\PhysicalDisk(_Total)\Disk Read Bytes/sec (Скорость чтения)
    \PhysicalDisk(_Total)\Disk Write Bytes/sec (Скорость записи)
    \PhysicalDisk(_Total)\Avg. Disk Queue Length (не более 2 * количество дисков, работающих параллельно = RAID0).
  4. Сеть:\Network Interface(*)\Bytes Total/sec (скорость передачи)
    \Network Interface(*)\Output Queue Length (очередь пакетов, не более 2).
Для более детального мониторинга на серверах 1С или СУБД можно разбивать счетчики по процессам rphost, ragent, sqlserver и т.д. Например, счетчики будут называться так: «Process(rphost*)% Processor Time», «Process(sqlservr)% Processor Time».
Мониторинг загруженности оборудования. Анализ результатов Мониторинг загруженности оборудования. Анализ результатов

Как создать набор замеров perfomance monitor

Наборы замеров можно создавать

  1. Вручную
  2. Загружать из шаблона
  3. Создать через bat-файл.

Пример bat-файла

logman create counter Counter1C -f bincirc -c " counter1" " counter2" -si 5 -v mmddhhmm

  • create counter Counter1C – создать счетчик с именем "Counter1C"
  • -f bincirc – результат в виде бинарного файла (*.blg)
  • -c "counter1" "counter2" – какие счетчики собираем
  • -si 5 – периодичность 5с.
  • -v mmddhhmm – формат выходного файла (например, Counter1Cblg)
  • На разных версиях и локализациях Windows названия счетчиков могут различаться
  • Можно использовать русские наименования счетчиков.
  • Символ "%" необходимо экранировать таким же символом "%%".
  • Некоторые свойства приходится прописывать вручную:Корневая папка
    Формат имени вложенной папки: yyyyMMdd (или yyyyMM)
    Условия остановки/перезапуска

Показатель pages/sec

Отдельно стоит упомянуть такой показатель для оперативной памяти как pages/sec. Сложность интерпретации его показателя заключается в том, что он не имеет какого-то особого значения без связки с другими показателями.

Pages/sec показывает, сколько OS сбрасывает на жесткий диск.страниц RAM в среднем за 1 секунду. Дело в том, что OS постоянно сбрасывает страницы из RAM, и это нормальное явление, поэтому для более детального анализа, необходимо подключать показания других счетчиков.

Читайте также: