← На главную
Ситуация, когда программа 1С зависает на несколько минут при старте сеанса, а проведение и открытие форм занимают от 60 до 120 секунд, свидетельствует о комплексных проблемах в инфраструктуре или настройках конфигурации. Разберем по шагам ключевые направления диагностики и практические действия для восстановления нормальной скорости работы информационной базы.
1. Анализ и оптимизация журнала регистрации
Одной из частых причин длительного запуска клиентского приложения является бесконтрольный рост файлов журнала регистрации. В клиент-серверном варианте разросшийся журнал (файл с расширением .lgd в каталоге 1cv8log) активно кэшируется и считывается, занимая всю оперативную память сервера.
Проанализируем шаги по решению проблемы с журналом:
- Проверим размер каталога
1cv8log на сервере 1С. При объемах в десятки гигабайт файл журнала перегружает подсистему памяти и дисковый ввод-вывод.
- Для анализа распределения памяти используем утилиту RAMMap, которая наглядно показывает, какой объем ОЗУ занят отображаемыми в память файлами журнала регистрации.
- Выполним сокращение журнала регистрации штатными средствами 1С (Администрирование → Настройка журнала регистрации → Сократить) или временно перенесем старые записи в архив.
- Скорректируем уровень логирования: для высоконагруженных баз рекомендуется отключить регистрацию информационных сообщений и предупреждений, оставив фиксацию только ошибок.
2. Замер производительности и профилирование программного кода
Если зависания происходят в момент проведения или открытия документов, необходимо локализовать конкретный участок кода, вызывающий задержку. Для этого воспользуемся встроенными средствами платформы:
- Запустим конфигуратор и перейдем в меню Отладка → Замер производительности.
- В пользовательском сеансе выполним проблемное действие (открытие формы или проведение документа).
- Остановим замер в конфигураторе и отсортируем полученную таблицу по колонке «Время выполнения (с)». Это позволит точно определить проблемные экспортные процедуры, тяжелые запросы в цикле или вызовы веб-сервисов.
- Для глубокого анализа серверных вызовов и ожиданий на блокировках настроим Технологический журнал с событиями
CALL, SCALL, SDBL и TLOCK.
3. Проверка актуальности итогов регистров накопления и бухгалтерии
При проведении документов платформа 1С обращается к таблицам итогов регистров. Если итоги не рассчитаны на актуальный период или рассчитаны на много месяцев/лет вперед, запросы СУБД начинают сканировать всю таблицу движений вместо выборки из агрегатов.
Разберем процедуру обслуживания итогов:
- Перейдем в режим «1С:Предприятие» под учетной записью с правами администратора в раздел Администрирование → Обслуживание → Регламентные операции → Управление итогами и агрегатами.
- Проверим, на какую дату рассчитаны итоги по каждому регистру.
- Установим расчет итогов на начало текущего или следующего месяца. Регулярный пересчет итогов необходимо включить в регламентное расписание обслуживания базы.
4. Регламентное обслуживание MS SQL Server и дисковой подсистемы
Неоптимальные планы выполнения запросов СУБД приводят к высокой нагрузке на процессор и задержкам транзакций. Проанализируем обязательные параметры настройки MS SQL Server:
- Обновление статистик и дефрагментация индексов: устаревшая статистика заставляет оптимизатор СУБД выбирать неэффективные соединения таблиц (например, сканирование таблицы вместо поиска по индексу). Настроим ночные планы обслуживания (Maintenance Plans) с перестроением индексов и полным обновлением статистики (
WITH FULLSCAN).
- Параметр MAXDOP (Max Degree of Parallelism): для баз 1С установим максимальную степень параллелизма равной
1 на уровне экземпляра SQL Server, чтобы предотвратить неоптимальное распараллеливание запросов.
- Ограничение памяти SQL Server: зададим параметр
Max Server Memory так, чтобы операционной системе всегда оставалось не менее 3–4 ГБ оперативной памяти для системных служб и дискового кэша.
- Режим Read Committed Snapshot Isolation (RCSI): для баз с управляемыми блокировками включим версионирование на уровне базы данных, чтобы операции чтения не блокировались транзакциями записи.
- Конфигурация базы TempDB: разделим базу
tempdb на несколько файлов одинакового размера (по количеству физических ядер, но не более 8) и разместим их на самых быстрых SSD/NVMe накопителях.
5. Проверка сетевого взаимодействия и серверного окружения
При распределении компонентов 1С и СУБД по разным серверам сетевая среда становится критически важным узлом:
- Сетевая связность и скорость интерфейсов: проверим физическую скорость сетевых адаптеров между сервером приложений 1С и сервером СУБД. Случайное переключение линка на 100 Мбит/с или повреждение патч-корда многократно увеличивает задержки передачи табличных данных.
- Диагностика потерь пакетов: запустим длительный пинг с большими пакетами между хостами для выявления нестабильности канала:
ping <IP_Адрес_Сервера_SQL> -t -l 1472
- Схема электропитания процессоров: на обоих серверах в BIOS и в настройках Windows переключим профиль электропитания на «Высокая производительность» (High Performance), отключив энергосберегающие состояния ядер (C-States, SpeedStep), так как 1С критически чувствительна к базовой тактовой частоте процессора в однопоточных операциях.
- Перезапуск рабочих процессов: настроим в свойствах кластера 1С интервал перезапуска рабочих процессов (например, раз в сутки во внерабочее время), а также ограничение объема памяти на один процесс для предотвращения деградации из-за фрагментации адресного пространства.
6. Очистка пользовательского кэша и фоновые сервисы
Если задержки при старте возникают только у части пользователей или после обновлений конфигурации, очистим локальный кэш:
- Удалим содержимое каталогов
%LocalAppData%\1C\1cv8\ и %AppData%\1C\1cv8\ на рабочих станциях.
- Проверим список активных интернет-сервисов и фоновых заданий в конфигурации (автоматическая проверка контрагентов по данным ФНС, сервис «1С-СПАРК Риски», синхронизация классификаторов). При нестабильном доступе к внешним серверам 1С синхронные попытки подключения при входе блокируют запуск интерфейса вплоть до истечения таймаута сети.