Ситуация, когда мощный на первый взгляд сервер (много ядер, достаточно оперативной памяти, NVMe-диски) показывает крайне низкую производительность в 1С, встречается довольно часто. Особенно остро это проявляется в клиент-серверном варианте на виртуальных машинах (VDS/VPS). Разберем пошагово, почему возникают задержки до минуты при открытии форм и до нескольких минут при проведении документов, и как это исправить.
Первое, на что стоит обратить внимание — это архитектура виртуализации. В отличие от физического сервера, ресурсы VDS распределяются гипервизором между множеством клиентов. Рассмотрим, почему это критично для 1С:
IOPS (количество операций ввода-вывода в секунду) и задержки (Latency).Одной из самых частых причин "задумчивости" 1С на Windows Server 2019/2022 является работа процессора в энергосберегающем режиме. По умолчанию в Windows установлена "Сбалансированная" схема. В этом режиме процессор постоянно сбрасывает частоту и "засыпает" при низких нагрузках. Для 1С, которая генерирует короткие, но очень интенсивные всплески нагрузки, это губительно.
Что нужно сделать:
Это заставит процессор работать на максимальной частоте постоянно, исключая микрозадержки на "разогрев" ядра.
Неправильная настройка MS SQL Server может замедлить проведение документов в разы. Выясним основные параметры, которые требуют корректировки:
Параметр Max Degree of Parallelism (MaxDOP). По умолчанию SQL Server пытается распараллелить выполнение запроса на все доступные ядра. Для 1С это часто вредно, так как затраты на координацию ядер превышают выгоду от параллельности. Рекомендуем установить MaxDOP = 1 (или 2, если ядер много, но начинать лучше с 1).
Параметр Cost Threshold for Parallelism. Если вы все же решили оставить частичную параллельность, установите порог стоимости параллелизма равным 50. Это не даст SQL Server "дробить" мелкие запросы.
Режим изоляции (Read Committed Snapshot Isolation). Чтобы пользователи не блокировали друг друга при чтении данных во время проведения документов, включим версионирование. Выполним следующий скрипт в SQL Management Studio:
ALTER DATABASE [Имя_Вашей_Базы] SET ALLOW_SNAPSHOT_ISOLATION ON;
ALTER DATABASE [Имя_Вашей_Базы] SET READ_COMMITTED_SNAPSHOT ON;
Современные версии Windows Server (2019/2022) по умолчанию отдают приоритет протоколу IPv6. Платформа 1С в некоторых конфигурациях сети может пытаться сначала установить соединение по IPv6, ждать тайм-аута и только потом переходить на IPv4. Это дает те самые "зависания" на 10-20 секунд при открытии форм.
Решение: Полностью отключим IPv6 в свойствах сетевого адаптера или через реестр. Также проверим файл hosts: в нем должна быть только одна запись для localhost — 127.0.0.1.
Если сервер лицензий вынесен на отдельный VDS, как в рассматриваемом случае, это может стать "бутылочным горлышком". При каждом открытии формы или начале транзакции 1С проверяет наличие лицензии. Любая задержка в сети между сервером приложений и сервером лицензий приводит к фризам интерфейса.
Рассмотрим рекомендации:
nnhasp.ini напрямую по IP-адресу, чтобы исключить задержки на уровне DNS.rphost.Часто системные администраторы забывают, что антивирус проверяет каждый временный файл, создаваемый 1С или SQL Server. Рассмотрим список исключений, которые необходимо добавить:
rphost.exe, rmngr.exe, ragent.exe, sqlservr.exe.*.mdf, *.ldf, *.log.Program Files, а также папки временных файлов (Temp) пользователей, под которыми работают службы.Для объективной оценки ситуации используем "Тест Гилева". Он позволяет получить числовой показатель производительности системы. Рассмотрим интерпретацию результатов:
Если тест показывает низкий результат при пустом сервере, значит, проблема в низкой частоте процессора или ограничениях VDS (Overcommit ресурсов хостером).
Посмотрим на состояние индексов и статистики. Даже на маленьких базах (4 ГБ) фрагментация индексов может достигать 90% после интенсивного ввода документов. Настроим ежедневное обслуживание:
DBCC FREEPROCCACHE.Резюме: В большинстве случаев "тормоза" на VDS лечатся установкой режима "Высокая производительность" в Windows, настройкой MaxDOP = 1 в SQL и отключением IPv6. Если эти меры не помогают, необходимо проверить однопоточную мощность процессора у хостера — для 1С это критический фактор.