Оптимизация производительности 1С
Фирма «1С» рекомендует для оценки производительности системы использовать методику APDEX (Application Performаnce Index) в которой предполагается выполнение определенных шагов.
Если у Вас медленно работает 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 регламентные операции можно автоматизировать с помощью «Планов облуживания».
Например: если в системе неактуальная статистика, то запросы будут медленно работать, т.к. будут формироваться неоптимальные планы запросов. Кроме того, неоптимальные запросы могут приводить к ожиданиям на блокировках.
Воспроизведение проблемы в однопользовательском режиме
Прежде чем использовать такие инструменты, как «Центр управления производительностью», чтобы проанализировать проблемы, необходимо воспроизвести ситуацию в однопользовательском режиме.
Рисунок 3. Результат замера производительности
Рисунок 4. Результат анализа 1С ЦУП
Например: если ситуация медленного проведения документа «Реализация» воспроизводится в однопользовательском режиме, то сначала необходимо выполнить его проведение в режиме «Замер производительности». Включение и выключение режима происходит в конфигураторе информационной базы в меню «Отладка — Замер производительности» (см. рис. 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
Ответить
Хотите присоединиться к дискуссии?Приглашаем поучаствовать!