Часто возникает ситуация, когда новый сервер по всем техническим характеристикам и синтетическим тестам (например, тесту Гилева) превосходит старое оборудование, но реальные задачи 1С, такие как обновление конфигурации в файловом режиме, выполняются в разы медленнее. Разберем детально, почему так происходит, и как найти «узкое место» в производительности системы.
Проанализируем ситуацию: на одном сервере обновление базы занимает 15 минут, а на другом — зависает на несколько часов. При этом процессоры на обоих серверах достаточно мощные. Выясним причину, обратив внимание на модели установленных накопителей. Обычный SATA SSD (например, Kingston KC600) имеет предел скорости около 550 Мбайт/сек. Однако для файловой 1С важна не столько линейная скорость, сколько задержки (latency) и работа с мелкими блоками данных.
Рассмотрим характеристики серверного накопителя Intel Optane (NVMe). В отличие от стандартных SSD, он использует технологию 3D XPoint, которая обеспечивает колоссальное преимущество при работе с файловой базой 1С:
Важный вывод: если ваша база «летает» на одном сервере и «висит» на другом, в первую очередь сравните не процессоры, а время отклика дисков, на которых лежат базы и временные файлы.
Посмотрим на программную часть. Часто «старый» сервер работает на Windows Server 2012 R2, а «новый» — на Windows Server 2016 или выше. Новые версии ОС имеют ряд особенностей, которые могут замедлять 1С:
1Cv8.1CD.Разберем типичную ошибку администрирования: база лежит на SSD, а системный раздел с профилями пользователей — на обычном медленном HDD. В процессе запуска и обновления 1С активно обращается к папке %AppData% и системным временным папкам TEMP. Если системный диск загружен на 100%, никакая мощь процессора не поможет.
Проанализируем, как можно принудительно перенаправить временные файлы на быстрый носитель. Мы можем использовать командный файл для запуска 1С с переопределением переменных окружения. Это позволит избежать влияния медленного HDD на работу программы.
Пример скрипта для запуска 1С с временными папками на быстром диске (например, на диске D:):
SET TEMP=D:\1C_Temp
SET TMP=D:\1C_Temp
IF NOT EXIST "D:\1C_Temp" md "D:\1C_Temp"
START "" "C:\Program Files\1cv8\common\1cestart.exe"
Также рекомендуется использовать символьные ссылки (mklink) для переноса папки кэша Local\1C\1cv8 на SSD, если нет возможности перенести весь профиль пользователя.
Выясним причину, связанную с энергосбережением. Серверные процессоры Xeon часто работают на пониженной частоте, если нагрузка кажется системе «незначительной». Обновление файловой базы — это однопоточный процесс. Для операционной системы он выглядит как загрузка одного ядра на 10-15% от общей мощности многоядерного процессора, и она не спешит поднимать частоту до Turbo Boost.
Что необходимо сделать:
Рассмотрим пошагово, что нужно проверить, если 1С виснет при обновлении:
*.1cd, *.1cl, а также папки с кэшем и сам процесс 1cv8.exe.chdbfl.exe не находит ошибок, рекомендуется также выполнить «Тестирование и исправление» из конфигуратора, так как логические ошибки в структуре таблиц могут замедлять индексацию при обновлении.Резюме: В большинстве случаев «зависание» на 8% при обновлении — это не ошибка программы, а ожидание дискового ввода-вывода. Перенос кэша на NVMe, настройка схемы питания и отключение лишних проверок ОС позволяют ускорить процесс в десятки раз, превращая часы ожидания в минуты продуктивной работы.