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

Фирма «1С» рекомендует для оценки производитель­ности системы использовать методику APDEX (Application Performаnce Index) в которой предполагается выполнение определенных шагов.

Если у Вас медленно работает 1С, мы можем оптимизировать производительность 1С, подробности обращайтесь в раздел Контакты.

Рассмотрим эти шаги.

Шаг 1. Определить список «ключевых операций»

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

  • >    проведение документ;
  • >    формирование отчета; открытие формы.

Количество ключевых операций не ограничено, но обыч­но их выбирают около пятнадцати.

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

Шаг 2. Определяем приоритет у каждой операции

Необходимо отсортировать операции по убыванию их важ­ности.

Шаг 3. Определяем целевое время выполнения по каждой операции

Целевое время — максимальное время исполнения опера­ции, при котором она считается выполненной за приемле­мое время и удовлетворяет заказчика (пользователя).

Шаг 4. Получаем данные по времени выполнения всех ключевых операций в реальной системе

Здесь необходимо собрать фактические данные по рабо­чей системе, чтобы сделать оценку ее производительности. Удобным способом получения длительности выполнения клю­чевых операций и их интегральных оценок по шкале APDEX является встраивание подсистемы «Оценка производитель­ности» из состава «Библиотеки стандартных подсистем».

Шаг 5. Вычисляем значение индекса производительности для каждой ключевой операции

Индекс вычисляется по формуле:

 (NS + NT/2)/N

где:

  • >  N — количество раз выполнения операции: чем оно боль­ше, тем индекс точнее;
  • >  NS — количество операций, выполненных за целевое вре­мя T;
  • >  NT — количество операций, выполненных за время от 0 до 4T.

В таблице 1 показано, каким количественным значениям показателя APDEX соответствуют качественные значения.

Значение Оценка
от до
0.00 0.49 Неприемлемо
0.50 0.69 Очень плохо
0.70 0.84 Плохо
0.85 0.94 Хорошо
0.95 1.00 Отлично
Таблица 2. Оценка системы 1С по методике APDEX

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

Операция Приоритет Т APDEX
Индекс Оценка
Открытие информационной базы каждым пользователем 1 10 1.0 Отлично
Открытие справочника «Контрагенты» 2 2 0.90 Хорошо
Запись нового элемента справочника «Контрагенты» 3 2 0.87 Хорошо
Открытие журнала«Заявок на кассовый расход» 4 2 0.90 Хорошо
Проведение документа «Заявка на кассовый расход» 5 3 0.60 Очень плохо

Индекс APDEX позволит: оценить состояние системы в любой момент времени; оценить состояние системы после оптимизации;

  • > оценить объем работ по оптимизации и приоритеты.

Выполнение регламентных заданий

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

  • >  обновление статистики; очистка процедурного кэша;
  • >  дефрагментация индексов;
  • >  реиндексация индексов.

Если эти задания не выполняются, то необходимо на­строить их выполнение, чтобы исключить их влияние на производительность. Для MS SQL Server регламентные операции можно автоматизировать с помощью «Планов облуживания».

Например: если в системе неактуальная статистика, то запросы будут медленно работать, т.к. будут формиро­ваться неоптимальные планы запросов. Кроме того, неоп­тимальные запросы могут приводить к ожиданиям на бло­кировках.

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

Прежде чем использовать такие инструменты, как «Центр управления производительностью», чтобы проанализиро­вать проблемы, необходимо воспроизвести ситуацию в од­нопользовательском режиме.

zamer

Рисунок 3. Результат замера производительности

result

Рисунок 4. Результат анализа 1С ЦУП

result1

Например: если ситуация медленного проведения доку­мента «Реализация» воспроизводится в однопользователь­ском режиме, то сначала необходимо выполнить его прове­дение в режиме «Замер производительности». Включение и выключение режима происходит в конфигураторе инфор­мационной базы в меню «Отладка — Замер производитель­ности» (см. рис. 2).

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

В результате будет выдана таблица, показывающая в процентных и абсолютных данных самые медленные опе­рации, выполнявшиеся во время замера производительно­сти и ту строчку кода, которая их вызвала (см. рис. 3).

Также при необходимости на данном этапе могут ис­пользоваться такие инструменты, как технологический жур­нал 1С и SQL Profiler.

Например: с помощью SQL Profiler удобно анализиро­вать неоптимальные запросы, т.к. можно получать планы за­проса в графическом и текстовом представлении, а также сами тексты запросов.

Анализ данных с помощью ЦУП

Если ситуация сложная и в однопользовательском режиме не воспроизводится, то это проблема, связанная с парал­лельной работой пользователей.

Так как часто такие случаи трудны для расследования, то необходимо использовать такой инструмент, как «Центр управления производительностью» (ЦУП), который входит в «Корпоративный инструментальный пакет» (КИП).

1С ЦУП представляет собой отдельную информацион­ную базу, которая подключается, собирает и анализиру­ет «узкие места» в исследуемой системе за выбранный период.

ЦУП анализирует следующие типы проблем: > неоптимальные запросы;

  •  ожидания на блокировках;
  • взаимоблокировки.

Так как в конфигурации программист 1С может испра­вить либо ее код, либо структуру метаданных, то все про­блемные места, найденные ЦУПом, привязываются к строч­ке кода и к объекту метаданных.

Если просуммировать вес каждой неоптимальной строки кода, наверху оказываются строки, которые оказали самый большой вклад в медленную работу 1С, на которые и необ­ходимо обратить внимание (см. рис. 4). Без этого инструмен­та получить интегральную оценку производительности было бы очень сложно.

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

К апгрейду оборудования необходимо прибегать, только когда точно известно, что оно не справляется с текущей нагрузкой. Анализируют обычно работу серверов, где рас­положены СУБД, сервер 1С:Предприятия и терминальный сервер.

Для определения загрузки оборудования для серверов на Windows Server можно применять утилиту Performance Monitor.

С помощью нее можно проанализировать:

  • >    недостаток оперативной памяти;
  • >    недостаточную производительность процессоров;
  • >    недостаточную производительность дисковой подси­стемы;
  • >    недостаточную пропускную способность сетевого ин­терфейса.

Если система на 1С очень медленно работает, а обо­рудование загружено совсем незначительно, то тут точно можно сказать, что апгрейд сервера не поможет решить проблему.

В таблице 3 приведены описания основных счетчиков Performance Monitor и предельные значения для каждого из них. При превышении этих значений следует рассмо­треть вопрос об увеличении производительности соответ­ствующего компонента.

Оптимизация кода конфигурации и структуры метаданных

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

Таблица 3. Описания счетчиков

Группа Счетчик Описание Критерий
Memory Pages/sec Интенсивность обмена между дисковой подсистемой и оперативной памятью Среднее: около 0 Максимальное: не более 20
Processor [_total] % Processor Time Загруженность процессоров Не более 70% в течение длительного времени
System Processor Queue Length Очередь к процессорам Не более 2 * количество ядер процессоров в течение длительного времени
Physical Disk Avg. Disk Queue Length Очередь к дискам Не более 2 * количество дисков, работающих параллельно
Network Interface Bytes Total/sec Скорость передачи данных через сеть Не более 65% от пропускной способности сетевого адаптера

В этом нам помогут следующие инструменты:

  • >   центр управления производительности;
  • >   замер производительности;
  • >   SQL Profiler;
  • >   технологический журнал и др.

Основными причинами медленной работы 1С являются:

  • >   неоптимальная работа запросов;
  • >   ожидания на блокировках;
  • >   взаимоблокировки.

Кстати, именно поэтому 1С:ЦУП анализирует именно эти параметры.

Если наша проблема воспроизводилась в однопользова­тельском режиме, то скорее всего имеется проблема с не­оптимальными запросами, и с помощью «Замера произво­дительности» мы его сможем найти.

Найденный запрос можно проанализировать, посмотрев его код либо план этого запроса при выполнении.

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

По результатам анализа всех проблем могут быть приня­ты различные решения, например:

  • >  добавление нового индекса; изменение запроса в коде конфигурации;
  • > установка управляемых блокировок и др.

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

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

Хоть оптимизация производительности 1С — очень сложный и разнообразный процесс, но в нем можно выделить опре­деленные постоянные действия, которые помогут облегчить труд оптимизатора.

Источник: Журнал Системный администратор №5 2016

 

0 ответы

Ответить

Хотите присоединиться к дискуссии?
Приглашаем поучаствовать!

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

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