После проведения масштабного обновления конфигурации или платформы «1С:Предприятие» системные администраторы и пользователи нередко сталкиваются с ситуацией, когда сеансы участников системы начинают регулярно зависать. Курсор мыши превращается в индикатор ожидания, интерфейс перестает реагировать на действия, а консоль администрирования кластера откликается с большой задержкой. При этом принудительное завершение рабочего процесса rphost.exe или перезапуск службы сервера лишь временно восстанавливает работоспособность.
Рассмотрим подробно причины возникновения данной неисправности и разберем последовательность действий для локализации и устранения зависаний.
Для того чтобы понять, кроется ли причина в коде обновленной конфигурации или в клиент-серверном взаимодействии с СУБД (PostgreSQL или MS SQL Server), необходимо локализовать источник сбоя. Проанализируем базовый алгоритм проверки:
.dt через Конфигуратор (меню Администрирование — Выгрузить информационную базу).Если в файловой версии программа работает корректно и зависания отсутствуют, значит проблема связана с регламентными заданиями кластера 1С, устаревшей статистикой СУБД или нехваткой ресурсов сервера при работе в многопользовательском режиме.
Одной из наиболее частых причин блокировок и критической нагрузки на процессор после обновления является запуск фоновых процедур. В частности, после обновления типовых решений могут запускаться процедуры отложенного обновления данных или регулярный полнотекстовый поиск.
Разберем, как заблокировать выполнение регламентных заданий:
Если после этого зависания прекратились, включим блокировку обратно и выполним выборочный запуск заданий через обработку Регламентные и фоновые задания в пользовательском режиме, чтобы определить конкретную процедуру, вызывающую сбой.
В современных конфигурациях 1С после обновления основной конфигурации запускаются фоновые обработчики отложенного обновления данных. Если в системе накопился большой объем информации, эти процедуры могут непрерывно выполнять тяжелые запросы в фоне.
Выясним состояние обновления и завершим его:
Если процесс rphost.exe зависает из-за постепенной утечки памяти или фрагментации адресного пространства, настроим параметры кластера для плавного пересоздания рабочих процессов без участия администратора:
86400 секунд для ежедневного обновления процессов).При обновлении конфигурации меняется структура таблиц и индексов. Устаревшая статистика СУБД приводит к тому, что оптимизатор запросов выбирает неэффективные планы выполнения, из-за чего возникают длительные взаимные блокировки.
Для базы под управлением PostgreSQL выполним сервисные команды в консоли СУБД:
VACUUM FULL ANALYZE;
REINDEX DATABASE name_db;
Для баз на MS SQL Server выполним регламентные процедуры через SQL Server Management Studio:
EXEC sp_updatestats;
Если предложенные шаги не дали полного результата, проанализируем поведение системы с помощью Технологического журнала 1С. Для этого создадим файл tjconfig.xml в каталоге bin/conf установленной платформы со следующим содержимым:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\LOGS_1C" history="24">
<event>
<eq property="Name" value="EXCP"/>
</event>
<event>
<eq property="Name" value="LOCK"/>
</event>
<event>
<eq property="Name" value="DEADLOCK"/>
</event>
</log>
</config>
Сбор логов за период зависания и анализ событий LOCK, DEADLOCK и EXCP поможет точечно определить модуль или запрос к СУБД, приводящий к остановке работы кластера.