Работа с тяжелыми конфигурациями 1С, такими как «Управление торговлей 11» (УТ) и «Бухгалтерия предприятия 3.0» (БП), предъявляет серьезные требования к аппаратному и программному обеспечению сервера. Особенно остро проблемы производительности проявляются при совместной работе нескольких пользователей в файловом режиме на терминальном сервере (RDP). Зависания системы на 1–3 минуты, статус «Не отвечает» в диспетчере задач и медленный отклик интерфейса — классические симптомы неоптимальной настройки.
В этой статье мы подробно разберем, почему возникают подобные зависания, проанализируем влияние дисковой подсистемы, процессора и оперативной памяти, а также пошагово настроим операционную систему Windows Server и саму платформу 1С для достижения максимального быстродействия.
Давайте выясним причину, по которой файловый вариант базы данных 1С физически не может масштабироваться так же эффективно, как клиент-серверный вариант:
1Cv8.1CD) все операции записи выполняются строго последовательно. Когда один пользователь проводит тяжелый документ, база блокируется для записи для всех остальных пользователей. В этот момент у остальных сеансы могут уходить в режим ожидания (зависать).Ниже мы подробно рассмотрим комплекс мер, которые помогут вдохнуть жизнь даже в относительно слабое серверное оборудование.
Обычные жесткие диски (HDD) обладают крайне низкой скоростью случайного чтения и записи (IOPS), что делает их непригодными для работы многопользовательской файловой 1С. Установка твердотельного накопителя (SSD) — это первое и наиболее эффективное аппаратное решение.
При установке SSD придерживайтесь следующих правил:
1Cv8.1CD) необходимо обязательно перенести на самый быстрый SSD в системе.При активной работе пользователей 1С генерирует гигабайты временных файлов. Если папки TEMP пользователей остаются на медленном системном HDD, вся выгода от переноса базы на SSD нивелируется.
Рассмотрим, как правильно перенаправить временные папки пользователей на быстрый SSD диск (предположим, что SSD в системе определен как диск E:):
E: корневую папку для временных файлов, например E:\TEMP.E:\TEMP\Usertemp.TEMP и TMP. Измените их значения на E:\TEMP.TEMP и TMP на E:\TEMP\Usertemp. Таким образом, временные файлы сессий пользователей будут создаваться на быстром SSD.В операционных системах Windows Server (начиная с версии 2012 R2 и выше) по умолчанию включена технология Dynamic Fair Share Scheduling (DFSS). Ее задача — справедливо распределять дисковое время между терминальными пользователями. Однако для 1С это оборачивается катастрофой: система искусственно ограничивает скорость обращения к диску для каждого отдельного сеанса RDP, из-за чего файловая база начинает жутко зависать даже при наличии быстрого SSD.
Давайте разберем, как отключить эту функцию через системный реестр:
Win + R, введите regedit и нажмите Enter.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk
REG_DWORD).1 (включено) на 0 (отключено).Как показывает практика тестирования производительности (например, по тесту Гилева), отключение технологии DFSS на дисковой подсистеме SSD способно дать мгновенный прирост производительности 1С в терминальном режиме до 30%.
Если серверное железо сильно ограничено по объему оперативной памяти (например, у вас всего 8 ГБ или 16 ГБ ОЗУ, на которых работают 3–4 пользователя), использование RDP крайне неэффективно. Отличной альтернативой является публикация базы данных на веб-сервере.
Проанализируем преимущества этой схемы:
1Cv8.1CD локально на диске сервера.Даже самое мощное серверное железо может зависать, если сама база данных забита ненужной информацией или выполняет неоптимальные фоновые вычисления. Проведите ревизию базы данных в режиме 1С:Предприятие:
1Cv8.1CD «мусорные» пустые пространства, оставшиеся после удаления документов, что ускорит его чтение сервером.Для предотвращения искусственного замедления работы процессора выполните две важные настройки в операционной системе сервера:
1Cv8.1CD при каждом обращении программы к диску. Добавьте в исключения антивирусного сканера:
TEMP.1cv8.exe и 1cv8c.exe.*.1CD, *.1cl, *.tmp.Если количество пользователей приближается к 5, а базы данных превышают объем 4–6 ГБ, файловый режим становится главным тормозом бизнеса, независимо от мощности вашего процессора. Существует стереотип, что покупка серверной версии 1С — это очень дорого. Однако для небольших компаний есть официальное бюджетное решение:
Переведя базу в режим клиент-сервера под управлением Сервера МИНИ и PostgreSQL, вы навсегда избавитесь от транзакционных блокировок файлов и защитите базу данных от повреждения («ошибок формата потока») при аварийном завершении работы сервера.
Иногда системные администраторы пытаются выжать максимум из старого железа (например, процессоров семейства Xeon) путем их разгона (оверклокинга) по шине или множителю. В случае с файловой 1С это несет в себе критическую опасность.
Дело в том, что файловый движок 1С не имеет механизма транзакционных логов (WAL), используемых в полноценных СУБД. Любой сбой по питанию, микронестабильность оперативной памяти или перегрев разогнанного процессора в момент записи данных приведет к необратимому разрушению внутренней структуры файла 1Cv8.1CD. Чаще всего это вызывает критическую ошибку «Ошибка формата потока», после которой восстановить базу стандартной утилитой chdbfl.exe удается далеко не всегда. Проводить разгон оборудования на рабочих серверах 1С категорически запрещено!
Давайте подведем итог проделанной работы. Чтобы устранить зависания 1С:Управление торговлей на сервере, мы выполнили следующие действия:
TEMP на SSD-диск.Внедрение этих рекомендаций позволит добиться плавной и отзывчивой работы пользователей без существенных финансовых вложений в дорогостоящую замену платформы сервера.