После обновления конфигураций 1С:ЗУП 3.1 на новые релизы пользователи часто сталкиваются с резким падением производительности. Основные симптомы: динамические списки «тупят», наблюдаются фризы интерфейса по 10–25 секунд, при которых невозможно даже переключить закладку или открыть меню, а сервер 1С начинает потреблять аномальное количество оперативной памяти. Рассмотрим подробно, как провести комплексную диагностику и устранить эти проблемы.
Одной из скрытых причин внезапного замедления системы после обновления является работа встроенных сервисов телеметрии. Проанализируем регламентные задания в консоли администрирования или непосредственно в пользовательском режиме. Особое внимание следует уделить заданию ЦентрМониторингаСлужебный.ПриВыполненииСтандартныхПериодическихПроверокНаСервере.
Выясним причину его влияния: этот механизм собирает данные о производительности и ошибках для отправки разработчикам. В определенных релизах (например, ветка 3.1.11–3.1.14) это задание может выполняться неоправданно долго, блокируя ресурсы процесса rphost и вызывая визуальные «затыки» в интерфейсе. Разберем, как его отключить:
Также проверим другие регламентные задания, такие как «Обновление текстового индекса» и «Извлечение текста». Если база данных велика, полнотекстовый поиск может потреблять значительные ресурсы RAM.
Если сервер 1С «съедает» всю доступную память и уходит в своп (активное использование файла подкачки на жестком диске), это неизбежно приведет к фризам. Рассмотрим, как определить виновника через консоль сервера 1С:
Откроем консоль администрирования кластера 1С, перейдем в раздел Сеансы. Нас интересует колонка Память (текущая). Обратите внимание, что значения там указаны в байтах. Для удобства пересчитаем их в мегабайты (разделив на 1 048 576). Если мы видим, что несколько сеансов потребляют аномально много ресурсов, проанализируем, какие именно действия выполняют эти пользователи.
В случае обнаружения утечек памяти (когда объем занятой памяти процессом rphost постоянно растет и не возвращается операционной системе), рекомендуется настроить перезапуск рабочих процессов в параметрах кластера:
Динамические списки в 1С работают на основе сложных SQL-запросов. Если база данных была обновлена, структура таблиц могла измениться, что делает старую статистику SQL неактуальной. Проанализируем состояние MSSQL Server.
Первым делом выполним обновление статистики. Это заставит планировщик SQL Server перестроить планы запросов, что часто мгновенно лечит фризы в списках. Выполним следующий скрипт в SQL Management Studio:
EXEC sp_updatestats;
Посмотрим также на настройки параллелизма. Для баз 1С критически важен параметр Max Degree of Parallelism (MAXDOP). Если он установлен в значение 0, SQL Server может пытаться распараллелить даже простые запросы динамических списков, что вызывает взаимные блокировки. Рекомендуется установить MAXDOP = 1 (или 2/4 для высоконагруженных многопроцессорных систем). Также поднимем Cost Threshold for Parallelism до 50, чтобы исключить параллелизм для легких запросов.
Иногда фризы интерфейса связаны не с сервером, а с сетевым соединением между клиентом и сервером 1С или между сервером 1С и SQL. Проверим задержки с помощью команды ping с использованием больших пакетов данных, так как стандартные пакеты по 32 байта могут не показывать реальную картину при передаче тяжелых выборок данных.
Выполним в командной строке:
ping [Адрес_Сервера] -l 64000 -t
Если время отклика превышает 5 мс или наблюдаются потери пакетов (Timeouts), необходимо копать в сторону сетевого оборудования, настроек сетевых карт или драйверов. Фризы в 10–20 секунд часто являются следствием ожидания ответов от сетевого сокета.
Разберем ситуацию со стороны разработки. Если тормозит конкретный список (например, список документов «Начисления зарплаты»), проверим его настройки:
Основная таблица. Без этого система не сможет использовать эффективную порционную выборку данных и будет пытаться вычитать все записи, что приведет к «туплению».Ссылка.Подразделение.Наименование) и при этом включен RLS (ограничение прав на уровне записей), 1С будет генерировать чудовищные по сложности запросы к SQL.Не забудем про стандартные, но важные процедуры. Очистка кэша конфигурации на стороне сервера и клиента помогает избежать проблем с некорректным отображением форм «Такси» после обновления. Если платформа 1С также обновлялась, рекомендуется выполнить реструктуризацию таблиц через тестирование и исправление информационной базы. Это обновит физическую структуру таблиц на диске и может устранить специфические проблемы производительности, возникшие в результате перехода на новый релиз платформы.
Подводя итог, при возникновении фризов в ЗУП 3.1 после обновления, мы должны действовать комплексно: сначала исключить влияние «Центра мониторинга», затем проверить настройки SQL Server и сетевую стабильность, и только после этого приступать к профилированию конкретных запросов динамических списков.