0

Замер производительности на сервере

1С:Предприятие 8 позволяет отлаживать и измерять производительность для кода на встроенном языке, исполняемом как на клиенте, так и на сервере.

Объединение результатов замера производительности для клиента и сервера

Особенностью работы замера производительности для клиент-серверной информационной базы в 1С:Предприятии 8 является то, что результаты замера производительности объединяются в один файл. Они включают в себя данные о ходе исполнения кода на встроенном языке как на клиенте, так и на сервере. Для получения такого замера достаточно запустить сервер 1С:Предприятия 8 в отладочном режиме (с помощью ключа командной строки /debug ) и в Конфигураторе в нужный момент просто включить режим замера производительности.

Отображение серверных вызовов.

Режим замера производительности 1С:Предприятия 8 показывает серверные вызовы:
1) вызовы сервера методами объектов встроенного языка, вызовы процедур и функций, исполнение которых происходит на сервере, отображаются в замере производительности в колонке "Обр. сервером" ("Обработка сервером") с помощью значка ;
2) вызовы клиентских процедур и функций, в которых тем или иным способом происходил вызов сервера, отображаются в замере производительности в колонке "Обр. сервером" ("Обработка сервером") с помощью значка .

На приведенном ниже рисунке можно видеть строки кода, которые приводили к серверным вызовам: для этих строк в колонке "Обр. сервером" ("Обработка сервером") указан соответствующий тип серверного вызова:

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

Отображение места исполнения кода: на клиенте или на сервере.

Режим замера производительности 1С:Предприятия 8 отображает, где исполнялся код на встроенном языке в клиент-серверной информационной базе: на клиенте или на сервере:
1) строки кода на встроенном языке, исполнение которых происходило на клиенте, отображаются в замере производительности с помощью значка в колонке "Клиент";
2) строки кода на встроенном языке, исполнение которых происходило на сервере, отображаются в замере производительности с помощью значка в колонке "Сервер".

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

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

Фильтрация результатов замера

В результатах замера производительности в 1С:Предприятии 8 существует возможность фильтрации информации результатов замера. Такая фильтрация реализована в виде двух флажков "Клиент" и "Сервер" в нижней правой части окна результатов замера. По умолчанию, включены оба флажка: это говорит о том, что в результатах замера присуитствует информация о ходе исполнения кода на встроенном языке как на клиенте, так и на сервере. Если оставить включенным только один флажок, то в результатах замера будет показываться только информация о ходе исполнения приложения только на клиенте или сервере соответственно.

Читайте также:  В интернете посмотришь ютуб

Оптимизация приложения

Режим замера производительности в 1С:Предприятии 8 позволяет успешно производить оптимизацию работы клиент-серверных приложений. Для выполнения такой оптимизации достаточно выполнить всего несколько действий, после чего проанализировать результаты замера производительности и перейти к улучшению кода на встроенном языке.

Выполнить замер производительности

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

Проанализировать результаты замера производительности

Второй шаг – проанализировать результаты замера производительности.

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

Проанализировать серверные вызовы: вызовы процедур и функций общих модулей на сервере, вызовы сервера при обращении к методам и свойствам объектов языка (обращение к базе данных, оперативная отметка времени и т.п.).

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

  • обращения к серверу в цикле, запросы в цикле;
  • обращения к свойствам объекта по ссылке;
  • и другие.

Оптимизировать прикладной код

Последний шаг – оптимизация прикладного кода. На основе анализа результатов замера производительности и выявленных узких мест произвести оптимизацию прикладного кода.

Замер производительности — встроенный функционал платформы 1С 8 для оценки производительности программного кода в режиме отладки 1С.

С помощью этого механизма возможно оценить производительность в разрезе строк программного кода. Рассмотрим использование этого механизма подробнее на конкретном примере.

Пример использования замера производительности 1С

Запускаем 1С 8.2 или 8.3 в режиме отладки, устанавливаем точку останова, запускаем режим замера из меню (Отладка — Замер производительности).

После этого необходимо активировать выполнение данной строчки программного кода. Что мы получаем:

Получите 267 видеоуроков по 1С бесплатно:

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

При запуске замера открывается также специальная сводная таблица, где указаны итерации с указанием времени:

Видео, как запустить замер в отладке 1С:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

Читайте также:  В приложении blinkfeed произошла ошибка

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Как понять, хорошо ли, как быстро и насколько правильно работает сервер? По сути, приведённые далее проверки можно осуществлять на любом сервере, компьютере либо виртуальной машине. Для начала необходимо разобраться с основными терминами, которые будут использованы.

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

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

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

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

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

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

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

Для верной интерпретации полученных фактов необходимо также понимать: существует взаимосвязь между различными аппаратными компонентами, в сумме они влияют на производительность сервера (будь то Windows или Linux).

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

Сейчас большинство серверов работают на основе операционной системы Linux, поэтому мы рассмотрим её более подробно в первую очередь. Вторую популярную в большей степени для домашнего использования систему Windows тоже не обойдём стороной.

Важно помнить, что приведённые утилиты имеют свои аналоги в обеих системах. Поэтому будут рассмотрены основные принципы работы наиболее популярных команд и программ. Дополнительные данные можно найти в открытом доступе сети Интернет. На форумах и в других источниках. Главное – понять, что искать. Приступим.

Сервер:

★ Linux

Общая схема подбора различных утилит для анализа запущенных процессов

Мониторинг состояния системы с разбиением по процессам

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

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

Читайте также:  Духовой шкаф электрический встраиваемый какой лучше отзывы

Показатели, на которые стоит обратить внимание, помечены красным цветом, их показатели – зелёным. В данном случае значения были выделены вручную для наглядности.

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

Показатели загруженности системы: load average и %CPU, us, id, wa

1. load average

Состоит из трёх чисел и демонстрирует усреднённую загрузку сервера за 1, 5 и 15 минут. Чем ниже значения, тем лучше.

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

2. %CPU

Какие процессы сколько процессорных ресурсов потребляют:

Загрузка пользовательскими процессами. Если ваш сервер постоянно не загружен ресурсоёмкими операциями типа конвертации видео, то этот показатель не должен превышать 10-20%.

  • id

Процент времени бездействия процессора должен быть высоким, в норме – от 80.

Ожидание операций ввода/вывода, чем ниже, тем лучше (иначе процессор слишком долго ждёт ответы от диска или сети).

Существует целый набор консольных утилит для измерения и анализа производительности системы – sysstat:

  • iostat – показывает статистику использования процессора и потоков ввода/вывода для дисков;
  • mpstat – выводит информацию об отдельных параметрах и общей статистике по процессору;
  • isag – построение графика активности системы в интерактивном режиме;
  • p > – мониторинг отдельных задач, управление которыми осуществляется ядром Linux.

Последнюю утилиту стоит рассмотреть подробнее. Для её использования мы сможем применить информацию, полученную с помощью предыдущей программы – top.

P >утилита, которая предназначена для сбора и вывода статистики использования ресурсов процессами.

Команда сообщает об использовании процессорного времени. Мы используем её с флагом (что означает, сейчас мы будет указывать PID):

PID необходимого процесса вы можете посмотреть в результатах вывода той же команды top: первый столбец сообщается process id (мы указали PID 611 и 1102).

Таким образом мы узнаём количество выделяемых ресурсов процессам с определённым идентификационным номером в системе.

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

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

При помощи флага -d можно получить статистику ввода/ вывода (остальные показатели остались неизменными):

При помощи флага -r можно получить статистику использования оперативной памяти:

Использование оперативной памяти

Для подробного отчёта об использовании всей оперативной памяти на устройстве подойдёт:

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *