«Сетевой интерфейс» - его значение в информационной системе 1С (7.7./8.1./8.2./8.3)   

      Является ли сеть узким местом в производительности вашей информационной системы (например, в информационной системе 1С) – этот вопрос задают себе многие специалисты и сами же отвечают себе: «нет», после анализа «загруженности сети», но все ли так тривиально…? «Загруженность сети» определяется пропускной способностью и трафиком пакетов, который проходит через нее в текущий момент – достаточно ли только этого показателя.

      Для примера сравним трафик пакетов по сети, который возникает в момент копирования большого файла (1 Тб) и трафик, возникающий в учетной системе (например, между сервером приложений 1С 8 и MS SQL) с большим количеством запросов (несколько тысяч в секунду – реальный показатель для высоконагруженных систем). С копированием большого файла все более менее ясно, файл разбивается на равные пакеты и передается максимально быстро (в соответствие с пропускной способностью сети), а трафик учетной системы неоднороден (запросы разного размера – сравнительно небольшого до нескольких кб) и чтобы «загрузить сеть» запросами, например 10кб, потребуется сгенерировать очень большое количество запросов (возможно даже нереальное для вашей информационной системы) в единицу времени. Получается, что ориентироваться только на «пропускную способность сети» и «загрузку сети» в учетных системах нельзя, и важно понимать такой параметр, как «отклик сети», количество пакетов (а это, в конечном счете, запросы к серверу SQL), которые можно передать с одного сервера на другой в единицу времени.

Два примера из «жизни»:

-   Пример 1: сервер БД и сервер приложения 1С 8 находятся на одном аппаратном ресурсе, то информационная система работает достаточно быстро. Когда их разносят на разные аппаратные ресурсы, пользовательские операции замедляются.

-   Пример 2: сервер БД и сервер приложений 1С 8 находятся на различных аппаратных ресурсах. Когда в системе работают несколько пользователей, то длительность операций приемлемая. Если большое количество пользователей формируют отчеты, то скорость резко падает (при этом сервер приложения 1С и сервер БД не нагружен).

      Исходя из всего вышесказанного, решили провести небольшое исследование сетевых интерфейсов на предмет их производительности при использовании в различных информационных системах (оборудование предоставил наш партнер USN Computers).

Параметры серверов для исследования

Сервер БД

Windows Server 2008 R2 Enterprise (высокая производительность)

SQL Server 2008 R2

Intel Core i7

8 Gb ОЗУ

Сервер клиент

Windows Server R2 Enterprise (высокая производительность)

AMD eight - core FX – 8350

16 Gb ОЗУ

Исследуемые сетевые интерфейсы

Интерфейс1: Marvell Yukon 88E8056 PCI-E Gigabit Ethernet

SWITCH 1Gb to 1Gb

Интерфейс2: Intel(R) Ethernet Controller 10 Gigabit X540-AT2

Point2Point

Интерфейс3: Dolphin 5 Gigabit IXH610 (Аналог Infiniband)

 

 

Point2Point

 

 

 

 

Программное обеспечение для исследования

      ПО написано на С++, создает, используя OleDB, нужное количество соединений к серверу БД от сервер клиента. В каждом соединении непрерывно формируется запрос вида: SELECT ‘Случайные данные’, размером от 1 – 1024 байт (имитируется случайный трафик учетной системы, например, 1С 8.2/8.3.) и отправляется серверу БД с получением выборки. Таким образом, без значительной нагрузки на сервер БД организуется интенсивный трафик запросов и осуществляются замеры.

Проведение исследования

      В ходе исследования установлен мониторинг производительности PerfExpert на два сервера для отслеживания наличия аппаратных ресурсов (чтобы узким местом был именно сетевой интерфейс). Замеры осуществлялись для следующего количества одновременно активных сессий (соединений с БД): 1,3,10,14. 

Интерфейс

Количество сессий

Среднее количество запросов/с (на сессию)

Суммарное количество запросов в секунду для всех сессий

Количество байт передано + получено

«Загрузка сети», %

Интерфейс1 (1Gb/s)

1

2223

2223

2,75 Мб/с

2,2%

Интерфейс1 (1Gb/s)

3

1887

5661

7 Мб/с

5,6%

Интерфейс1 (1Gb/s)

10

1537

15370

19,25 Мб/с

15,4%

Интерфейс1 (1Gb/s)

14

1381

19334

24,25 Мб/с

19,4%

Интерфейс2 (10Gb/s)

1

3918

3918

5 Мб/с

0,4%

Интерфейс2 (10Gb/s)

3

3903

11709

14,63 Мб/с

1,17%

Интерфейс2 (10Gb/s)

10

3002

30020

37,5 Мб/с

3%

Интерфейс2 (10Gb/s)

14

2985

41790

52,25 Мб/с

4,18%

Интерфейс3 (5 Gb/s)

1

4552

4552

5,75 Мб/с

 

Интерфейс3 (5 Gb/s)

3

4447

13341

16,8 Мб/с

 

Интерфейс3 (5 Gb/s)

10

3526

35260

44 Мб/с

 

Интерфейс3 (5 Gb/s)

14

2834

39676

49,6 Мб/с

 

Таблица 1. Результаты исследования.

      Обратите внимание (выделено желтым в таблице), как деградирует скорость передачи запросов для 1 сессии и 14 сессий (при этом загрузка сети приемлемая в обоих случаях)!!! Если вернуться ко второму примеру (см. выше), то 14 сессий – это могут быть сессии 1С пользователей, формирующие отчеты с большим количеством запросов (особенно маленьких по ресурсопотреблению). А если, например, для формирования отчета необходимо выполнить 100000 запросов к серверу БД, то увеличение длительности может составить до 2 раз только за счет сетевой передачи.

Вывод

      В учетных системах наравне с пропускной способностью огромное значение имеет  параметр, определяющий отклик сети, на который часто не обращают внимание. Судя по результатам исследования, стоимости оборудования и адаптации для высоконагруженных информационных систем, в том числе 1С 8.1., 8.2., 8.3, использование Интерфейса 2 (Intel(R) Ethernet Controller 10 Gigabit X540-AT2) между серверами приложения 1С и сервером БД (MS SQL) является оптимальным решением, так как отклик сети для нее почти в 2 раза лучше, чем для сети 1Гб/с.

Оборудование предоставил наш партнер USN Computers