Каталог решений - Производительность сервера 1С и фоновые задания

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

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

В наличии

В падении производительности сервера 1С зачастую виноваты не регламентные / фоновые задания, они выполняют полезную работу. Но задания нельзя оставлять «наедине» с базой.

Категория:

Описание

При очередной реорганизации инфраструктуры на казалось бы ровном месте вдруг наблюдается к концу рабочего дня просто чудовищная нагрузка на сервере 1С, на котором развернута пара десятков типовых бухгалтерских баз. Сервер 1С просто останавливается. Наблюдаются падения rphost-ов. Виновником оказалось фоновое задание. Задание выполняет загрузку данных из торговой системы. Порции небольшие, в каждой выгрузке 1-4 документа. В бухгалтерские базы данные попадают практически в реальном режиме. Поэтому настроено задание на частый запуск. И хоть самих данных для загрузки может и не оказаться, но задание все-равно ведь стартует. Бухгалтера в конце рабочего дня закрывают свои сессии, а фоновые задания работают.

На рабочем сервере в Performance Monitor сняты показания счетчика %Processor Time, см. на картинке.
Интервалы 1 и 3 соответствуют времени когда в каждой базе открыта пользовательская сессия, интервал 2 — работает только фоновое задание.

Да вот и объяснение: https://partners.v8.1c.ru/forum/message/1767219

"Если с информационной базой нет других соединений, то сеанс фонового задания появляется только после того, как будет полностью загружен контекст информационной базы. На это в нормальных условиях может уйти от 1 до 20 секунд. В течении этого времени у регламентного задания будет соединение, но не будет сеанса".

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

Провели небольшой эксперимент. На отдельном сервере 1С были развернуты 15 одинаковых типовых бухгалтерских баз. Никаких данных в базах нет. В каждой базе были отключены все регламентные задания за исключением одного, модуль которого заменили на пустую процедуру, это чтобы снять вопрос об оптимальности самого задания. Настроили расписание — выполнять каждые 10 секунд. Результат тот же — колоссальная нагрузка на процессор на сервере 1С в момент когда нет активных пользовательских сеансов. На сервере СУБД нагрузка практически отсутствует. Сеть не перегружена.

Похоже, можно делать выводы.

В первую очередь, что и подтолкнуло на самом деле написать эту заметку — теперь рекомендации по настройке фоновых и регламентных заданий коими полон интернет и которые обязательно услышишь от внедренцев, выглядят не совсем корректно. А именно. Часто рекомендуют отключить не нужные задания, и в первую очередь — убрать полнотекстовый поиск, кстати, очень удобная штука. Например здесь https://buhexpert8.ru/obuchenie-1s/administrirovanie-1s/1s-optimizatsiya-chto-delat-esli-programma-tormozit.html#i-2 или здесь http://fadmin.ru/vopros/pochemu-tormozit-1s-reglamentnye-zadaniya.

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

 

Задание

Расписание

Все обновления новостей

каждый день; каждые 300 секунд, завершать через 600 секунд

Все обновления 1СПАРК Риски

каждый день; каждые 3600 секунд

Все обновления 1СПАРК Риски (Область данных)

каждый день; каждые 43200 секунд

 

 

Извлечение текста файлов для поиска

каждый день; каждые 85 секунд

Обновление данных онлайн-сервисов регламентированной отчетности

каждый день; каждые 3600 секунд

Обновление задач бухгалтера

каждый день; с 2:22:00 один раз в день

Обновление индекса ППД

каждый день; с 8:00:00 каждые 60 секунд

Обновление проверок контролирующими органами

каждый день; с 0:55:15 один раз в день

Отложенное обновление ИБ

каждый день; каждые 60 секунд, повторять после завершения через 60 секунд

Отправка электронных документов

один день; один раз в день

Получение электронных документов

один день; один раз в день

Проверка контрагентов

каждый 7-й день; один раз в день

Проверка контрагентов на подключение к 1С-ЭДО

каждый 7-й день; один раз в день

Проверка кэша состояний ФНС

каждый день; с 2:25:05 один раз в день

Проверка новых электронных документов

каждый день; каждые 1800 секунд

Слияние индекса ППД

каждый день; с 1:00:00 один раз в день

Установка периода рассчитанных итогов

каждый день, 5-го числа месяца; с 1:00:00 один раз в день

Большей частью задание выполняется только один раз в день. Такое тяжелое задание как «Слияние индекса ППД» выполняется ночью. Вряд ли они могут явиться источником проблем в текущей работе пользователя. Но есть задания, которые стартуют довольно часто, в рабочее время, вот такие легкие задания и могут явиться источником проблем. Выделены синим цветом. Значит необходимо побеспокоится о том чтобы либо эти задания не «частили» когда нет активных пользовательских сеансов, либо следует активировать в такой базе пользовательский сеанс.

В падении производительности сервера 1С виноваты не сами задания, они выполняют полезную работу, и должны выполнять. Но задания нельзя оставлять «наедине» с базой. В противном случае может быть плохо серверу.

У себя нашли выход с использованием дополнительной базы, выполняющей роль диспетчера. В этой базе создали регламентные задания, свое для каждой рабочей базы. Задание выполняет простую работу — проверяет имеются ли данные для загрузки, если да, по COM вызывается задание на загрузку в соответствующей рабочей базе. Теперь нагрузка на сервер 1С просто никакая, значения %Processor Time в среднем 15-20. Исчезли падения rphost-ов. Но жизнь идет. К сожалению, пришлось отказаться через некоторое время от этого решения, поскольку во время загрузки решили выполнять дополнительные расчеты в бухгалтерской базе, вызовом соответствующего кода самой базы. Но не все по COM, как оказалось, бухгалтерия позволяет сделать. Пока держим активными сеансы в базах.

Вряд ли можно согласиться с утверждением, что это просто такая особенность платформы. Уж больно неприлично выглядит деградация сервера 1С при получении сеансовых данных на фоне того с какой легкостью эти данные отдает сервер СУБД.
Хотя наверное действительно особенность, неприятная. Впрочем, как не называй, учитывать следует.

Все проверялось на такой конфигурации:

Платформа 1С:Предприятие 8.3 (8.3.12.1529).
Конфигурация Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.65.80). 
СУБД — Microsoft SQL Server Management Studio 12.0.5589.7. 

Сервер 1С и сервер СУБД на разных машинах.

Конфигурации похожи — Intel(R) Xeon(R) CPU E5-4650v2 2,4 GHz, RAM — 32 GB.

has been added to your cart:
Оформление заказа