Настройка сервера 1С:Предприятие в связке с MS SQL Server — задача, требующая понимания того, как именно платформа распределяет нагрузку. Часто системные администраторы сталкиваются с ситуацией, когда сервер с более мощными характеристиками (большим количеством ядер и объемом оперативной памяти) показывает в тестах, например, в тесте Гилева, такие же результаты, как и менее мощная машина. Давайте разберем, почему это происходит и на что действительно стоит обращать внимание.
Прежде всего, важно осознать, что тест Гилева — это синтетический инструмент. Его базовый тест TPC-A в значительной степени является однопоточным. Это значит, что он оценивает способность процессора выполнять последовательные операции. Для таких задач количество ядер вторично — критически важной является тактовая частота и объем кэша процессора.
Если один сервер имеет более высокую частоту на ядро, он может легко конкурировать с многоядерным «монстром», у которого частота ниже. Когда вы запускаете однопоточный тест, серверы упираются в «потолок» скорости работы одного ядра, и дополнительные ядра простаивают, не давая прироста баллов.
Платформа 1С:Предприятие не всегда умеет эффективно распараллеливать одну задачу на десятки ядер. В реальной работе системы можно выделить два типа нагрузки:
SQL, построение отчетов, массовое проведение. Здесь MS SQL Server действительно задействует все доступные ресурсы, если правильно настроен параллелизм.Прирост производительности от добавления ядер перестает быть линейным после определенного порога. Если сервер имеет 16+ ядер, дальнейшее увеличение их количества может даже негативно сказаться на производительности из-за накладных расходов на синхронизацию потоков.
Рассмотрим ключевые параметры, которые влияют на реальную скорость работы:
1. Скорость дисковой подсистемы
Даже если оба сервера стоят на SSD, типы накопителей и их контроллеры имеют решающее значение. Скорость записи и чтения, количество операций ввода-вывода в секунду (IOPS) — это «бутылочное горлышко» для любой базы данных. Разница между серверными NVMe-накопителями и обычными клиентскими SSD может составлять десятки раз.
2. Роль NUMA-архитектуры и виртуализации
На виртуальных серверах с большим количеством ядер критически важно, чтобы гипервизор правильно распределял ресурсы. Если виртуальная машина «размазана» по разным физическим процессорам (NUMA-узлам), возникает задержка при доступе к памяти. Всегда следите за тем, чтобы архитектура виртуальной машины соответствовала физической топологии сервера.
3. Настройка параметров SQL Server
Для достижения максимальной производительности необходимо настроить параметры MAXDOP (Max Degree of Parallelism) и Cost Threshold for Parallelism.
MAXDOP на значении «авто». Ограничьте его количеством ядер в одном физическом процессоре (внутри одного NUMA-узла).Max Server Memory настроена корректно, чтобы SQL Server не вытеснял операционную систему и службу 1С:Сервер в файл подкачки.Если вы хотите понять, где именно «тормозит» ваша система, не ориентируйтесь только на итоговые баллы синтетических тестов. Давайте проанализируем реальные показатели:
Disk Queue Length стабильно высокое, проблема в дисковой подсистеме.LCK_..., значит, система страдает от блокировок, а не от нехватки частоты процессора.1С и MS SQL Server на разные виртуальные машины. Это позволит вам гибко настраивать приоритеты ресурсов: для 1С — приоритет высокой частоты процессора, для SQL — приоритет памяти и дисковой подсистемы.Подводя итог: не стоит гнаться за количеством ядер ради «красивых цифр» в синтетических тестах. Одинаковый результат на разных серверах говорит лишь о том, что для конкретного типа нагрузки (однопоточного) вы достигли предела возможностей текущей архитектуры. Для реального ускорения системы фокусируйтесь на оптимизации запросов, настройке блокировок SQL и обеспечении максимально быстрой работы с дисками.