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