Вопрос повышения производительности 1С:Предприятие, особенно в файловом режиме работы, является классической задачей для системного администратора. Часто возникает идея: если «узким местом» является сеть, не поможет ли добавление второго сетевого адаптера распределить нагрузку и ускорить отклик программы? В данной статье мы подробно разберем, почему простая установка второй карты в старых системах не дает результата, и какие архитектурные изменения действительно ускорят вашу базу.
Рассмотрим механику работы файловой 1С через сетевую папку. Когда пользователь запускает программу, клиентское приложение начинает активно считывать и записывать данные в файл 1Cv8.1CD. Этот процесс происходит по протоколу SMB (Server Message Block). Проанализируем, как ведет себя этот протокол в зависимости от версии операционной системы.
Если на сервере установлена устаревшая ОС, такая как Windows Server 2003, используется протокол SMB 1.0. Этот протокол крайне неэффективен для современных баз данных по нескольким причинам:
Таким образом, даже если мы установим две гигабитные карты, данные от одного клиента всё равно будут идти по одному каналу. Суммарная пропускная способность сервера увеличится только в том случае, если мы вручную распределим разных пользователей по разным подсетям, подключенным к разным картам, что значительно усложняет администрирование и редко дает ощутимый прирост из-за специфики блокировок файлов 1С.
Разберем ситуацию с современными ОС (Windows Server 2012 и выше). Начиная с версии протокола SMB 3.0, появилась поддержка технологии SMB Multichannel. Она позволяет:
Важный момент: для работы этой технологии обе стороны (и сервер, и клиент) должны поддерживать SMB 3.0+. Если ваши рабочие станции работают на старых ОС или сервер ограничен Windows Server 2003, установка второй карты останется бесполезной тратой ресурсов.
Проанализируем реальную загрузку канала. При копировании большого файла мы можем увидеть 100% загрузку гигабитной сети. Однако при работе 1С загрузка канала часто не превышает 1–5%. Почему же программа «тормозит»? Причина в Latency (задержках). Файловая 1С совершает тысячи мелких запросов в секунду. Если время отклика (ping) между клиентом и сервером составляет даже 1–2 мс, суммарное ожидание ответов от сервера превращается в секунды «замирания» интерфейса.
Вторая сетевая карта никак не уменьшает физическую задержку прохождения пакета. Наоборот, неправильная настройка NIC Teaming (агрегации каналов) может даже увеличить задержки из-за работы логического драйвера распределения нагрузки.
Выясним, поможет ли разделение баз по разным физическим накопителям. В обсуждаемой ситуации у нас есть три базы общим объемом около 10 Гб и до 23 пользователей. Основная проблема здесь — длина очереди диска.
Когда 20 человек одновременно обращаются к разным базам, расположенным на одном SSD (например, старом SATA-накопителе типа Vertex 4), контроллер диска выстраивает эти запросы в очередь. Разнесение баз по разным физическим SSD позволит:
Однако стоит учитывать пропускную способность шины материнской платы. Если подключить несколько быстрых SSD к медленному контроллеру на старой материнской плате (как в случае с платформой X79 в обсуждении), то «узким местом» станет сама шина или контроллер.
Если расширение сетевого канала не помогает, рассмотрим кардинальные способы ускорения работы. Для 20+ пользователей файловый режим через «расшаренную» папку — это зона высокого риска потери данных и низкой скорости.
Вариант 1: Веб-сервер (IIS или Apache).
Мы можем опубликовать базы на веб-сервере. В этом случае работа с файлом 1Cv8.1CD происходит локально на сервере силами самого веб-компонента 1С. Клиент получает только готовые данные по протоколу HTTP/HTTPS.
Плюсы:
Минусы:
Вариант 2: Терминальный сервер (RDP). Это «золотой стандарт» для файловой 1С. Пользователи подключаются к рабочему столу сервера и запускают программу «внутри» него. Плюсы:
Минусы:
Если вы всё же решили использовать две сетевые карты, обратите внимание на следующие настройки в свойствах драйвера, которые могут улучшить ситуацию:
Default Domain Controllers Policy) отключите обязательное подписывание сообщений. Это может ускорить передачу файлов на 20–30% за счет снижения нагрузки на CPU при формировании пакетов.Проанализировав ситуацию, мы предлагаем следующую последовательность шагов для оптимизации:
Таким образом, вторая сетевая карта в данной архитектуре является наименее полезным обновлением. Начинать следует с программной части и оптимизации способа доступа к данным.