Каждый специалист поддержки имеет опыт получения абстрактных жалоб со стороны пользователей. Всем знакомы формулировки: «она очень долго думает», «у меня красное окно», «система работает как-то не так», а также «этого давно не было, и вот опять».
В такой ситуации сходу разобраться, где кроется ошибка, и что предпринять в первую очередь, очень сложно. В этой статье рассмотрим от чего зависит производительность 1С, т.е. высоконагруженных систем, созданных на базе «1С:Предприятие», в ситуациях, когда симптоматика не до конца понятна и конкретный диагноз поставить невозможно.
Основные причины, влияющие на производительность 1С
Более чем в 60% случаев причинами низкой производительности оказываются:
- Неоптимальные запросы и программный код конфигурации (26% случаев);
- Неоптимальная индексация таблиц объектов (19% случаев);
- Неоптимальная нагрузка на дисковую подсистему (16% случаев).
С этим солидарны и ведущие разработчики Microsoft
Таким образом, получить значимое улучшение производительности приложения базы данных, можно оптимизировать область доступа к данным, включая логическое и физическое проектирование баз (насколько это возможно в 1С), а также посредством создания правильных запросов и использования оптимальной индексации. Часть проблем с производительностью баз данных может быть решена с помощью наращивания аппаратных мощностей, но не всегда: неправильная проектировка прикладного решения не может быть компенсирована более мощным сервером. Не редки случаи, когда, не разобравшись с причинами проблемы производительности, компании-пользователи идут на серьезные затраты, приобретая новое оборудование, а проблема так и остается нерешенной.
Качественная диагностика производительности 1С с применением всего спектра существующих инструментов – залог успешного решения проблем и оптимизации затрат
Первым шагом к выявлению и устранению проблем низкой производительности должно стать составление полного перечня ключевых проблемных операций, с указанием точной скорости их выполнения на текущий момент и ожидаемой скорости их выполнения в будущем.
Пример:
Не правильно: При формировании отчета программа «зависает». Хочу, чтобы формировала быстрее.
Правильно: Формирование отчета «Ведомость по задолженности» осуществляется 5 минут 10 секунд. Ожидаемая скорость формирования данного отчета – не более 20 секунд.
После того как перечень проблем составлен и оцифрован, необходимо провести анализ причин, начав с поисков проблемного кода, если таковой имеется (например, «тяжелые» запросы, длительные ожидания на блокировках, deadlock’и пр.).
Инструменты для идентификации проблемного кода
- «1С:Центр управления производительностью» (модуль, входящий в инструментальный пакет «1С:Корпоративный», производителем которого является фирма 1С);
- Облачные сервисы Гилева;
- Штатные инструменты, встроенные в СУБД ведущих вендоров.
Эффективность использования данных инструментов гарантирует квалификация разработчика «1С:Эксперт по технологическим вопросам», подразумевающая его участие в масштабных внедрениях 1С. При этом разные эксперты, исходя из своего индивидуального опыта, могут отдавать предпочтения тому или иному инструменту/методу.
Параллельно с использованием одного из представленных инструментов, применяются и штатные средства мониторинга загрузки оборудования (счетчики «Performance monitors»).
На основании полученных замеров выявляется класс причины:
- Проблема в коде;
- И/или проблема в аппаратной части;
- Проблема в других ресурсоемких программах, используемых на рабочих серверах.
Нагрузочное тестирование 1С – методика оценки серверного оборудования
Как уже упоминалось, среди факторов, способных повлиять на быстродействие 1С, как в положительную, так и отрицательную сторонку, важное место занимает серверное оборудование и его настройка. Рассмотрим варианты замеров, оценки нагрузки и тестирования работоспособности системы в следующих условиях:
- Сервер 1С имеется в наличии и располагается:
- Совместно с СУБД;
- На отдельном сервере.
- Планируется приобретение сервера.
Для оценки соответствия параметров имеющегося серверного оборудования требованиям системы необходимо произвести сбор данных по нагрузке на аппаратную часть, в том числе и на процессор, т.е. нагрузочное тестирование 1С. Для этого применяется «Performance Monitor» – инструмент, позволяющий произвести замер оборудования на рабочем контуре и снять счетчики производительности.
Ниже приведен базовый набор счетчиков, которые необходимо настроить для мониторинга производительности оборудования в ОС Windows. Сбор производится со всех серверов, где установлены серверы 1С.
Виды | Счетчик | Описание |
---|---|---|
Физические диски | \PhysicalDisk(_Total)\Avg. Disk Queue Length | Очередь к дискам |
\PhysicalDisk(*)\Avg. Disk Bytes/Write | Среднее время записи на диск | |
\PhysicalDisk(*)\Avg. Disk Bytes/Read | Среднее время чтения с диска | |
Процессор | \Processor(_Total)\% Processor Time | % загруженности процессоров |
\System(_Total)\Processor Queue Length | Длина очереди к процессорам | |
Оперативная память | \Memory(_Total)\Available Mbytes | Доступная оперативная память |
Сеть | \Network Interface(*)\Bytes Total/sec | Скорость передачи данных по сети |
Если показатель счетчика процента загруженности процессора для вида «Processor» имеет высокое значение, следует выявить процессы, которые можно остановить без ущерба для работы сервера, а также перенести на другие сервера.
Вид «Process» позволит настроить мониторинг для каждого отдельного процесса, а также определить, какие из процессов занимают больше всего процессорного времени. Если на сервере установлен только сервер 1С, то чтобы понять, какую нагрузку он дает на железо, необходимо настроить сбор следующих счетчиков:
\Process("1Сv8*")\% Processor Time |
\Process("ragent*")\% Processor Time |
\Process("ragent*")\Private Bytes |
\Process("ragent*")\Virtual Bytes |
\Process("rmngr*")\% Processor Time |
\Process("rmngr*")\Private Bytes |
\Process("rmngr*")\Virtual Bytes |
\Process("rphost*")\% Processor Time |
\Process("rphost*")\Private Bytes |
\Process("rphost*")\Virtual Bytes |
\Process("1Сv8*")\Private Bytes |
\Process("1Сv8*")\Virtual Bytes |
Если текущая система находится в неудовлетворительном состоянии, то на основании собранных замеров, применяя линейную зависимость, следует провести расчет параметров оборудования для установки целевой системы.
Если приобретение серверного оборудования только планируется, рассчитать его параметры можно проэммулировав работу планируемой системы, но в меньшем масштабе, на имеющемся оборудовании. Для этого используется «1С:Тест-цент», который входит в Корпоративный инструментальный пакет 1С. На основании полученных замеров, с помощью методик расчета определяются параметры планируемой системы и, соответственно, требования к оборудованию. Данный тест можно использовать многократно под разные замеры, предварительно дополнив и расширив функционал. Эта методика имеет высокую точность и простоту расчета.
консультация эксперта
самые свежие новости 1 раз в месяц