Переход с «1С:Управление торговлей 10.3» на версию 11.4 часто сопровождается ожиданиями высокой производительности, однако со временем пользователи могут заметить «нарастающие тормоза». Особенно это проявляется при проведении документов, когда привычные операции начинают занимать от 10 до 40 секунд. Проанализируем ситуацию, когда сервер обладает достаточной мощностью, база данных на MS SQL имеет умеренный объем (около 32 Гб), а тесты производительности (например, тест Гилева) показывают неплохие результаты, но реальная работа замедляется. Разберем по шагам, где искать причины деградации системы и как их устранить.
Одной из самых распространенных причин внезапных «зависаний» интерфейса и замедления работы в тонком клиенте является разрастание или повреждение локального кэша метаданных. Рассмотрим подробнее, какой кэш необходимо проверить:
%AppData%\1C\1Cv8 и %LocalAppData%\1C\1Cv8.rphost некорректно обрабатывают временные данные. Очистка выполняется при остановленной службе «Агент сервера 1С:Предприятие» в каталоге reg_1541.Проанализируем программный способ очистки, который можно внедрить в скрипты обслуживания:
// Пример скрипта для удаления временных файлов в Windows
del /q /s /f "%LocalAppData%\1C\1Cv8\*"
del /q /s /f "%AppData%\1C\1Cv8\*"
Конфигурация УТ 11 значительно сложнее своей предшественницы (10.3) в плане фоновых вычислений. Выясним, какие внутренние механизмы могут замедлять проведение документов.
Регистр сведений «Очередь заданий к расчету». В УТ 11 расчет себестоимости и распределение партий часто выносятся в фоновый режим. Если за несколько месяцев накопилось огромное количество необработанных записей, система при каждом проведении документа пытается «догнать» расчеты, что вызывает задержки. Проверим состояние фонового выполнения в разделе «Обслуживание — Регламентные операции».
Версионирование объектов. Если в системе включено версионирование для всех документов «с хранением бессрочно», то за полгода таблица истории изменений (_InfoReg...) может вырасти до гигантских размеров. Это напрямую замедляет запись Ref и Document, так как 1С вынуждена при каждом сохранении записывать тяжелую копию объекта. Рекомендуется установить срок хранения версий не более месяца или отключить версионирование для малозначимых справочников.
Дата запрета редактирования. Проанализируем ситуацию с итогами. Если дата запрета редактирования не установлена, система при проведении текущего документа может пытаться пересчитать итоги или проверить остатки за слишком глубокие периоды. Установка даты запрета на конец прошлого месяца существенно облегчает работу механизма контроля остатков.
Даже если регламентные задачи (бэкап, реиндексация) настроены, этого может быть недостаточно. Рассмотрим специфические параметры SQL, влияющие на 1С.
Параметр MAXDOP (Max Degree of Parallelism). По умолчанию в SQL Server этот параметр равен 0 (использовать все ядра для одного запроса). Для баз 1С это часто становится фатальным, вызывая взаимные блокировки при проведении документов. Установим значение в 1, чтобы один запрос выполнялся на одном ядре. Это устранит «колесо ожидания» длительностью 10–40 секунд, вызванное ожиданием ресурсов процессора (CXPACKET).
Обновление статистик (Update Statistics). Реиндексация — это хорошо, но обновление статистик — важнее. Если статистики устарели, оптимизатор SQL строит неверные планы запросов, выбирая Index Scan вместо Index Seek. Рассмотрим необходимость ежедневного (или даже чаще) выполнения задачи:
-- Команда для принудительного обновления статистик во всей базе
EXEC sp_updatestats;
Настройка TempDB. Поскольку база находится на SSD, убедимся, что временная база TempDB разделена на несколько файлов одинакового размера (по количеству ядер, но не более 8). Это снижает нагрузку на распределение страниц памяти при интенсивной записи временных таблиц, которые 1С создает в огромных количествах при проведении документов.
Версия платформы 8.3.13 имеет свои особенности. Рассмотрим подробнее работу серверных процессов.
Утечки памяти в rphost. Процессы rphost имеют свойство накапливать ошибки и «раздуваться» в оперативной памяти. Если сервер не перезагружался долгое время, деградация производительности неизбежна. Посмотрим, как настроить автоматический перезапуск в консоли администрирования сервера 1С: установите «Интервал перезапуска» в 86400 секунд (24 часа) и задайте допустимый объем памяти, после которого процесс должен мягко завершиться и передать сессии новому рабочему процессу.
Полнотекстовый поиск (ППФ). Если индекс полнотекстового поиска поврежден, система тратит ресурсы на его постоянную актуализацию. Если пользователи не используют глобальный поиск в интерфейсе, попробуйте временно отключить его в разделе «Администрирование — Общие настройки». Это освободит значительную долю ресурсов дисковой подсистемы и процессора.
Иногда причина «тормозов» кроется вне настроек 1С. Проанализируем системное окружение:
*.mdf, *.ldf, *.ndf, а также каталоги bin платформы и папки с кэшем сервера 1С. Сканирование этих файлов «на лету» во время записи данных в SQL — одна из главных причин задержек в 10–20 секунд.Таким образом, решение проблемы «нарастающих тормозов» требует комплексного аудита: от чистки временных файлов пользователей до глубокой настройки параметров SQL-сервера и пересмотра регламентов ведения учета в самой конфигурации «Управление торговлей 11».