gifts2017

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

Опубликовал Павел Баркетов (gallam99) в раздел Администрирование - Оптимизация БД (HighLoad)

    Является ли сеть узким местом в производительности вашей информационной системы (например, в информационной системе 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С 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 предлагается скачать бесплатное приложение. Благодаря тестирования вы получите максимальное количество запросов в секунду для каждой сессии, деградацию при параллельной работе нескольких пользователей для вашей сетевой архитектуры.

Скачать файлы

Наименование Файл Версия Размер
Программа для тестирования сети 76
.exe 6,00Mb
26.06.13
76
.exe 6,00Mb Скачать

См. также

Вознаграждение за ответ
Сумма: 0 $m
Добавили:
Павел Баркетов (gallam99) (40.00 $m), Сергей Космачев (ksnik) (20.00 $m)
Подписаться Добавить вознаграждение

Комментарии

1. Александр Шаров (Ta_Da) 08.05.13 23:49
Чтобы доказать, что важна не только пропускная способность сети, Вы сравнили три контроллера (с пропускными способностями 1Гбит, 5 Гбит и 10 Гбит) и пришли к выводу что, внезапно, оптимальным является контроллер с самой высокой пропускной способностью(10Гбит), так? Но при этом приписываете эту "победу" некоемому абстрактному "времени отклика" (которое у вас, похоже от пропускной способности не зависит?). Или я что-то упустил?
2. miandrew (miandrew) 08.05.13 23:53
Отличная статья, будет хоть что показать админу. А то еле-еле допросиля чтоб хоть 1Gb поврубал...
3. Юрий Былинкин (ardn) 09.05.13 06:04
Время отклика не пробовали смотреть smokeping'ом например?
4. Сергей Космачев (ksnik) 09.05.13 12:01
Здравствуйте, с праздниками! :-) Ваш совет устанавливать насколько возможно более производительное серверное оборудование без споров принимаем, но думаем что при 300 пользователях узким местом в этой связке является не сетевой интерфейс, а количество и качество оперативной памяти SQL-сервера (процессор нагружен) и почему-то рейд-массив сервера 1С8 (процессор сервера 1С8 не нагружен, но смотрим на растущий объем памяти и дампы под процессы rphost). Ничем другим кроме процессов сервера 1С8 и процессов клиентов 1С8 жесткие диски сервера 1С8 не заняты, однако часто выходят из строя. Подскажите пожалуйста, как это обосновать, вероятно жесткие диски "летят" потому, что сервер 1С8 ввиду низкой загрузки процессора со стороны ПО сервера и клиентов 1С гоняет слишком много темпов?
5. anry mc (AnryMc) 09.05.13 13:34
Насколько я понял, Вы намекаете, что сетевое оборудование разных производителей и разных моделей, на физическом уровне с разной скоростью реагирует на команду системы по формированию пакета для передачи в сеть?

А вывод? Быть может производители указывают в характеристике продукции параметр на который следует обратить внимание при покупке, кроме скорости поддерживаемой сети?
6. Владимир (hogik) 09.05.13 18:53
Вот, думаю, можно еще по теме посмотреть: http://infostart.ru/public/147259/
Если экономить своё время, то читать с раздела: "ВЫВОДЫ".
Там и картинка есть про латентность... ;-)
7. Сергей Космачев (ksnik) 09.05.13 21:10
(6) hogik, если по нужде ставят все на 1 самый навороченный комп (ссылку смотрел), тогда сложные месячные отчеты не могут сформироваться, недостаточно памяти. То есть отдельный сервер 1С все же нужен.
8. Владимир (hogik) 09.05.13 21:52
(7)
"... недостаточно памяти. То есть отдельный сервер 1С все же нужен"(с)
Сергей (ksnik).
Архитектура NUMA и есть 2, 4, 8 "отдельных" серверов в одной "коробке".
С самым быстрым интерфейсом между этими "серверами" - оперативная память.
С возможностью поставить суммарный большой объем оперативной памяти (с учетом лимита объема памяти на один узел).
С возможностью отдать/управлять всем объемом памяти "коробки" ;-) на конкретную задачу, который (объем) Вы никогда не сможете обеспечить на обычной архитектуре.
9. Сергей Космачев (ksnik) 10.05.13 21:03
(8) hogik, почитал про когерентность кэш-памяти бо оперативка просто-напросто надолго забивается при обработки наборов данных запросов, но кажется что не очень подходит для борьбы с нехваткой памяти, кажется нужно делать как можно мощней проц и больше памяти MSSQL, на сервере 1С работать над утечкой памяти и неизвестно чем еще, неизвестно как выбирать железо в связке"оперативка-рейд" чтоб не ломалось.
10. Павел Баркетов (gallam99) 13.05.13 09:25
Добрый день, коллеги.
С прошедшими всех праздниками
Теперь по комментариям:
(1) Не так важно оборудование для исследования, целью статьи было следующее:
"Развеять миф о том, что если у вас не загружена сеть, то проблем с сетью нет", для этого сделано много замеров (большинство не вошло в конечную статью). Неожиданностью и для нас оказалось, что отклик в сетевом интерфейсе 10Гб в 2 раза лучше, чем для 1 Гб/с, но пока эти исследования не проведешь - не докажешь этот факт.
Почему " "победу" некоемому абстрактному "времени отклика" " - это не абстрактная характеристика, просто большинство сетевых плат для Ethernet продаются без нее, а она очень важна как раз для трафика информационной системы.
(3) Нет, замеряли своими методами через отправку/получения маленького пакета.
(4) "Ваш совет устанавливать насколько возможно более производительное серверное оборудование без споров принимаем" - нет, это не совсем вывод статьи. Вывод: учитывать отклик очень важно при выборе оборудования. + Приведена интересная таблица для оценки разницы. Приведу пример: стоит выбор между 100Мб/с и 1 Гб/с. Администратор утверждает, что сеть 100 Мб/с загружена на 15%, следовательно, сетевой интерфейс справляется и обновления не требуется. При большом количестве пакетов (запросов в секунду) отклик повлияет на скорость системы в целом, значит надо провести доп. работы для исследования этого параметра и выводы администратора не правильны (вероятность ошибки большая).
По поводу общей производительности (память, ЦПУ, диск) - много можно сказать, тем более что мы этим активно занимаемся - softpoint.ru. Не совсем по теме статьи. Если будут вопросы, пишите в личку.
(6) Мы активно участвовали в обсуждении темы автора, есть с чем согласны - есть то, с чем не согласны.
Жду дальнейших вопросов
11. Павел Баркетов (gallam99) 13.05.13 17:04
Интересная информация у QLogic: "Introduction to Ethernet Latency"

Latency
Range (μs)
Technology Applications

50 – 125 μs
1gb ethernet (TcP/iP) • Multi-tasking: multiple
high-bandwidth applications
running simultaneously
• Bulk data transfer
• Transactional database
backup and applications
• Web (front-end for
data centers)

5 – 50 μs 10gb ethernet
(TcP/iP)
• Bulk data transfer
• real-time video streaming
• Database backup and
applications

3 – 5 μs rDMA, rocee, and
iWArP
• high Performance computing
• high-frequency Trading (hfT)
• inter-process communication
(iPc) cluster
• low-latency applications

Sub-3 μs infiniBand (QDr) and
proprietary
• high Performance computing
• high frequency Trading (hfT)
• Ultra-low latency applications

А в спецификациях на картах Ethernet не пишут Latency (отклик).
12. John Smith (PiccaHut001) 13.05.13 19:25
softpoint.ru вся понятно, ребятки хотят баблосика поднять.
13. Павел Баркетов (gallam99) 13.05.13 19:29
(12) Статья носит чисто информационный характер и может кому-то помочь при решении вопросов выбора сетевого оборудования.
14. Павел Баркетов (gallam99) 16.05.13 11:11
+ скоро доработаем бесплатное ПО для проверки сетевого интерфейса вашей системы 1С 8.Х (будет измеряться количество запросов в секунду и деградация между сервером приложений 1С и сервером БД).
15. miandrew (miandrew) 16.05.13 11:25
(14) вот это уже ближе к "телу". Тогда и статистика от людей подсобирается.... что да как у кого..
16. Юрий Былинкин (ardn) 20.05.13 13:55
(14) gallam99, Хотелось бы посмотреть
17. Александр Леженин (AVMCo) 25.06.13 19:01
Статья конечно интересная, но сервер - это не только сетевая карта и провода. На скорость работы оного поболе влияют ЖД и память (из личного опыта), причем не обязательно увеличение последней, на третье место поставлю процессор. Да еще Винда сама по себе со временем начинае притормаживать, если не проводить определенных манипуляций, так уж она запрограммирована своими создателями, от этого никуда!
18. Maxim Briuhov (briuhov) 25.06.13 20:39
(17) AVMCo, Я с тобой сагласен на 100 процентов.Сам не раз сталкивался с такой проблемой дико висела сеть.
Решилось установкой нового винта SSD и все полетело.
19. Caponid V (caponid) 25.06.13 21:09
интересно, что значит "в высоконагруженной системе большое количество пользователей формируют отчеты"???? - как то странно звучит - для этого есть другие решения: тех же кубов или программные - правильно написать этот отчет, что бы он исполнялся на сервере - отговорки используют стандартные для "высоконагруженной системы" - это моветон.... или некомпетенция.
20. Павел Баркетов (gallam99) 25.06.13 22:13
(17) AVMCo,
Если статья интересная, где "+"))
А если серьезно, я бы не использовал слово " поболе влияют ЖД и память (из личного опыта)", а заменил бы на чаще. Но, учитывая тот факт, что сам занимаюсь проблемами производительности, могу казать так - проблемы сети не всегда так очевидны, и их понимание в контексте учетных систем главная задача статьи.

(18) мне ситуация напоминает анекдот (без обид):
"Вовочкана биологии пишет лаб. работу.
1. Оторвал таракану лапку, говорю: "Беги!" Бегит
2. Оторвал таракану вторую лапку, говорю: "Беги!" Бегит
3. Оторвал таракану все лапки, говорю: "Беги!" Не бегит
ВЫВОД: Таракан без ног не слышит!"

(19) К основной цели статьи ваше пояснение мало относится: имеется в виду некая операция (отчет частный случай) учетной системы, которая отправляет достаточно большое количество запросов к серверу БД. "Отчет" - использовался, так как часто приходится сталкиваться с большим количеством запросов именно в отчетах))

p.S> Программа для замеров сети у пользователей скоро будет выложена.
21. Лев Корл (lev6975) 25.06.13 22:25
Гигабит...Это уже 125 Мб/с, ну, ладно, 100...Скорость, которой должно с лихвой хватать для работы 1-2-3 пользователей(да и харды в режиме случайного чтения ненамного быстрее выдают)...А, как правило, замедление существенное при работе от сети.Толстого клиента точно, серверный вариант, наверно, тоже...Сеть настроить не всегда доступно, поэтому файловые базы жму ТИИСом, начинают шевелиться побыстрее...
22. Александр Леженин (AVMCo) 25.06.13 23:02
(20) gallam99,
я не теоретик, я практик, для меня показатель, когда на 486 Celerone (сервере) 20 компов работают без тормозов в сети
23. Павел Баркетов (gallam99) 26.06.13 12:02
Выложили приложение для замеров отклика сети.
Можно проверить на реальном оборудовании (лучше в нерабочее время))
Жду от Вас вопросов, готов оперативно ответить.
Обратите внимание на деградацию параметра: количество запросов в единицу времени для одной сессии.
24. artur rakhmatulin (нормальный такой) 26.06.13 13:30
у нас на предприятии между сервером 1с и СУБД был канальчик в 1ГБ/с
одновременно работали ~20 пользователей

на сервере крутили стандартные БП, ЗУП и +"специальная разработка" для предприятия на базе 1С8

по мере увеличения нагрузки на эту "специальную" разработку, от пользователей начали поступать жалобы на медленную отзывчивость и вскоре ошибки с таймаутами (!!!)

временное решение нашлось путем внедрения нового коммутатора с функцией LinkAgregation
и объединением 2х каналов по 1ГБ/с в один на 2ГБ/с на обоих серверах

в тот момент я тоже уверовал в прямую зависимость скорости работы сервер1с-сервер СУБД от скорости сет.интерфейсов
25. bkr 1052 (bkr1052) 26.06.13 17:24
Терминальный сервер плюс хорошая сеть.По любому на терминальном сервере быстрее работает.
26. aspirator 23 (aspirator23) 07.07.13 16:14
Обработка любопытная, хотя видно что "рабочий инструмент" - не все работает как нужно.
Но главное - информацию для анализа дает. Одно неудобно - требуется установка. Для серверов - не везде можно поставить, да и не всегда хочется ставить. Что-нибудь "портабельное" возможно?
27. Павел Баркетов (gallam99) 07.07.13 22:14
(26) aspirator23,
Спасибо за отклик.
"Не все работает как нужно" - можете конкретно указать, чтобы можно было доработать.
По поводу "портабельности" - установка программы требуется для удобства, если нет возможности на сервере сделать установку, можно установить программу на любом компьютере, далее каталог установки копировать на сервер, открывать с шары... Или я не так вас понял?
28. aspirator 23 (aspirator23) 08.07.13 07:16
(27) Спасибо, все заработало. Вопросы снимаются: если "повертеть, покрутить" - все становится понятным.
Если на SQl работает одна БД, то сервер приложений 1с, размещенный на другом сервере, открывает одну сессию?
Следовательно деградации скорости сетевого соединения характерна для случая когда к одному SQl обращаются с нескольких серверов приложений 1с?
29. Павел Баркетов (gallam99) 08.07.13 08:47
(28) aspirator23,
количество соединений с MS SQL не связано с количеством серверов приложений 1С или рабочих процессов.
Оно связано с необходимостью в зависимости от количества одновременно работающих пользователей.
Деградация характерна для случаев, когда есть много пользователей (скажем более 5 пользователей) выполняют операции 1С с большим количеством небольших запросов к серверу MS SQL. В качестве примера можно привести Инталев 1С, учитывая ее архитектуру, для выполнения отчета может понадобится более 50000 запросов к MS SQL, получается что скорость сети имеет в этом случае очень большое значение и ее деградация при многопользовательской работе сказывается на длительности этих отчетов и всех операций.
30. Александр Романько (romankoav) 07.12.16 14:18
(4) Диски выходят из строя из-за неоптимальности кода - когда постоянно идут обращения неявные к базе (получение данных через точку)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа