← На главную
При увеличении объема обрабатываемых документов и размера информационных баз администраторы и разработчики часто сталкиваются с целым комплексом проблем: резким замедлением проведения документов, регулярными ошибками блокировок СУБД, аварийным закрытием службы сервера 1С и ошибкой «Сеанс отсутствует или временно удален». Рассмотрим подробнее, почему возникают эти сбои и как по шагам восстановить стабильную работу инфраструктуры.
1. Диагностика узких мест через Технологический журнал и мониторинг СУБД
Когда система работала стабильно, а после резкого ввода большого объема данных (например, нескольких тысяч документов реализации) начались таймауты и зависания, первоочередной задачей становится сбор объективных данных. Выясним причину через настройку инструментов диагностики:
- Настройка Технологического журнала (ТЖ): проанализируем события
EXCP (исключительные ситуации и падения рабочих процессов), TLOCK (управляемые блокировки) и TTIMEOUT (таймауты ожидания блокировок). Если в конфигурации не менялся код, увеличение объема данных приводит к тому, что неоптимальные запросы вместо сканирования по индексу начинают выполнять полное сканирование таблиц (Table Scan / Index Scan), надолго захватывая ресурсы.
- Проверка журналов операционной системы и СУБД: проанализируем системный журнал Windows (System и Application) на предмет аварийных завершений процессов
rphost.exe, rmngr.exe и ошибок выделения памяти. В журнале SQL Server проверим наличие сообщений о нехватке дискового пространства или блокировках пула памяти.
- Мониторинг дисковой подсистемы: оценим длину очереди диска (Avg Disk Queue Length) и время отклика (Disk Sec/Transfer). При массовом проведении документов перегрузка дисков временными таблицами
tempdb и журналом транзакций приводит к катастрофическому падению скорости работы всей системы.
2. Балансировка оперативной памяти между 1С и MS SQL Server
В конфигурациях, где сервер приложений 1С:Предприятие и MS SQL Server размещены на одном физическом сервере или виртуальной машине, частой причиной внезапного отключения службы 1С является борьба за оперативную память. Разберем по шагам, как правильно разграничить ресурсы:
- Ограничение максимального объема памяти SQL Server: по умолчанию MS SQL Server стремится занять всю доступную физическую RAM. В результате рабочим процессам
rphost.exe не хватает памяти для выполнения тяжелых отчетов или пакетного проведения документов, из-за чего процесс аварийно завершается операционной системой. Откроем свойства сервера в SQL Server Management Studio (SSMS), перейдем в раздел Memory и зададим параметр Max Server Memory, оставив достаточный объем памяти для ОС и процессов 1С.
- Настройка перезапуска рабочих процессов в кластере 1С: в консоли администрирования кластера серверов 1С настроим параметры кластера: укажем Допустимый объем памяти и Интервал перезапуска рабочих процессов. Это позволит серверу плавно перезапускать рабочие процессы до того, как они исчерпают лимиты адресного пространства.
- Контроль системного кэша и драйверов: в Windows Server 2008 R2 системный кэш метафайлов файловой системы может чрезмерно разрастаться (параметр
metafile в утилите RAMMap). Также проверим и обновим устаревшие драйверы аппаратных ключей защиты, которые могут препятствовать корректной выгрузке завершенных процессов.
3. Устранение ошибки «Сеанс отсутствует или временно удален» и сетевых сбоев
Ошибка потери сеанса при неактивности пользователя обычно связана с разрывом TCP-соединения между клиентским приложением и рабочим процессом сервера 1С на уровне сетевого оборудования или операционной системы. Разберем, как устранить такие обрывы:
- Настройка параметров TCP Keep-Alive в реестре Windows: по умолчанию ОС проверяет активность неактивного TCP-соединения только через 2 часа. Если промежуточный сетевой шлюз или роутер сбрасывает неактивные таблицы трансляции соединений быстрее (например, через 15–30 минут), клиент теряет связь с
rphost. Перейдем в ветку реестра HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters и зададим параметры KeepAliveTime (например, 300000 мс — 5 минут) и KeepAliveInterval (1000 мс).
- Отключение аппаратных разгрузок сетевого интерфейса: технологии разгрузки сетевого стека (TCP Chimney Offload, Large Send Offload (LSO), Receive Side Scaling (RSS)) на физических и виртуальных сетевых адаптерах могут вызывать микроразрывы сокетов 1С. Рекомендуется отключить эти функции в свойствах сетевой карты и через командную строку с помощью утилиты
netsh int ip set global.
- Проверка энергосбережения сетевых карт: на клиентских ПК и сервере отключим флаг «Разрешить отключение этого устройства для экономии энергии» в свойствах электропитания сетевых адаптеров.
4. Оптимизация работы с блокировками в конфигурации и СУБД
Конфигурации на обычных формах (включая Комплексную автоматизацию 1.1) исторически используют автоматический режим блокировок данных, что на больших объемах данных приводит к взаимным блокировкам транзакций. Проанализируем методы решения проблемы:
- Использование механизма «Разделение итогов»: для высоконагруженных регистров накопления включим режим разделения итогов. Это позволяет нескольким параллельным документам записывать движения без ожидания снятия монопольной блокировки с текущих остатков.
- Поэтапный перевод критичных участков на управляемые блокировки: переведем проведение проблемных документов и чтение остатков в управляемый режим блокировок транзакций, чтобы минимизировать диапазон блокируемых строк в таблицах СУБД.
- Настройка автоувеличения файлов базы данных и журнала транзакций: в свойствах базы данных MS SQL установим фиксированный шаг автоувеличения (Autogrowth) в мегабайтах (например, по 256–512 МБ), исключив процентный прирост или малые значения по умолчанию (1 МБ), которые вызывают постоянные микрозаморозки базы при расширении файлов.
- Включение мгновенной инициализации файлов (Instant File Initialization): предоставим учетной записи службы SQL Server локальное право
Perform Volume Maintenance Tasks (Выполнение задач по обслуживанию томов) в групповых политиках безопасности Windows. Это исключит операцию зануления дискового пространства при расширении файлов данных.
- Регулярная очистка временных данных: проконтролируем размер каталогов сеансовых данных кластера 1С (папки вида
snccntx), которые со временем могут разрастаться и снижать производительность файлового ввода-вывода.