Работа файловых баз 1С:Предприятие 7.7 на современных многоядерных серверах под управлением Windows Server в среде удаленных рабочих столов (RDS/RDP) нередко сопровождается внезапными зависаниями. Программа может переставать отвечать при проведении документов, открытии диалогов параметров печати или попытке штатной выгрузки информационной базы, при этом общая загрузка процессора в диспетчере задач не превышает 10–15%. Разберем по шагам комплекс причин такого поведения и проанализируем практические методы решения проблемы.
Файловая версия 1С 7.7 крайне чувствительна к размеру файлов таблиц .DBF и индексов .CDX. Штатный предел для одного файла формата DBF составляет 2 ГБ, однако при приближении размера файла проводок 1SENTRY.DBF или итогов 1SBKTTL.DBF к 1–1.5 ГБ платформа начинает испытывать серьезные задержки при поиске и блокировке записей. Для получения списка наиболее объемных файлов выполним команду в консоли операционной системы:
cd "C:\1C Base\Base"
dir /os
Проанализируем ключевые объекты базы данных:
1SENTRY.DBF): если файл превышает 1 ГБ, выборка бухгалтерских итогов и проведение документов замедляются в геометрической прогрессии. Единственным надежным решением является свертка базы данных (удаление движений прошлых лет с вводом входящих остатков на начало расчетного года) и вынос архивной базы в отдельный каталог.SYSLOG\1cv7.mlg): платформа непрерывно пишет события в данный файл. При размере файла более 500–900 МБ любая транзакция начинает зависать из-за постоянного позиционирования в конец огромного текстового файла. Заархивируем текущий файл 1cv7.mlg во внешний каталог и удалим его из папки SYSLOG базы. При следующем запуске 1С автоматически создаст чистый журнал.1cv7.cfg): разрастание файла конфигурации интерфейса пользователя до сотен килобайт или мегабайт приводит к задержкам при открытии любых экранных форм. Рекомендуется очистить данный файл при монопольном обслуживании.Попытка выполнить стандартную выгрузку через меню «Администрирование» -> «Выгрузка данных» в Конфигураторе завершается зависанием, если суммарный объем данных превышает 2 ГБ. Встроенный модуль архивации 1С 7.7 не поддерживает стандарт ZIP64. При наличии временных файлов обмена (например, 1SUPDTS.DBF) или огромной таблицы проводок создаваемый файл 1Cv77.dat упирается в лимит, и процесс аварийно стопорится.
Для баз объемом более 2 ГБ откажемся от штатной выгрузки Конфигуратора и настроим регламентное резервное копирование каталога базы внешними средствами (например, архиватором 7-Zip по расписанию в нерабочие часы при отсутствии активных пользователей или с использованием теневых копий тома VSS).
Зависание интерфейса 1С при обращении к параметрам страницы или печати табличных документов связано с устаревшим механизмом Win32 GDI, который опрашивает свойства принтера по умолчанию в момент инициализации диалогового окна. Перенаправление клиентских принтеров (Easy Print) в Windows Server создает огромные задержки ответа службы диспетчера печати (Print Spooler).
Для устранения проблем с печатью выполним следующие настройки:
Платформа 1С 7.7 является строго однопоточным 32-разрядным приложением. Показатель общей загрузки сервера в 10–15% на многоядерном процессоре означает, что одно процессорное ядро загружено на 100%, выполняя тяжелую операцию блокировки или расчета итогов.
Настроим окружение сервера для максимальной отдачи:
C-States и технологию SpeedStep/EIST, чтобы предотвратить сброс частоты ядер при неравномерной нагрузке.Temp с помощью ключа запуска /T:
"C:\Program Files (x86)\1Cv77\BIN\1cv7.exe" enterprise /D"C:\1C Base\Base" /T"D:\1C_Temp\User1"
0 для всех пользователей либо подключим внешнюю компоненту ожидания блокировок (например, vk_sleep).1cv7.exe, 1cv7s.exe в исключения механизма предотвращения выполнения данных (DEP). В антивирусном ПО настроим полный запрет на сканирование каталога базы данных и файлов с расширениями .dbf, .cdx, .md, .usr, .tmp.Для восстановления целостности структуры и избавления от накопившегося мусора в таблицах выполним монопольное обслуживание:
.CDX в каталоге базы (команда del *.cdx).1С:Предприятие 7.7 в монопольном режиме и дождемся завершения автоматической переиндексации всех таблиц.