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

27.06.13

База данных - HighLoad оптимизация

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Программа для тестирования сети
.exe 6,00Mb
93
93 Скачать (1 SM) Купить за 1 850 руб.

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

См. также

HighLoad оптимизация Программист Платформа 1С v8.3 Бесплатно (free)

Метод очень медленно работает, когда параметр приемник содержит намного меньше свойств, чем источник.

06.06.2024    9256    Evg-Lylyk    61    

44

HighLoad оптимизация Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Анализ простого плана запроса. Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы.

13.03.2024    5096    spyke    28    

49

HighLoad оптимизация Программист Платформа 1С v8.3 Бесплатно (free)

Оказывается, в типовых конфигурациях 1С есть, что улучшить!

13.03.2024    7572    vasilev2015    20    

42

HighLoad оптимизация Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих запросов на sql, ожиданий, конвертация запроса в 1С и рекомендации, где может тормозить.

2 стартмани

15.02.2024    12417    241    ZAOSTG    80    

115

HighLoad оптимизация Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Принимать, хранить и анализировать показания счетчиков (метрики) в базе 1С? Почему бы нет? Но это решение быстро привело к проблемам с производительностью при попытках построить какую-то более-менее сложную аналитику. Переход на PostgresSQL только временно решил проблему, т.к. количество записей уже исчислялось десятками миллионов и что-то сложное вычислить на таких объемах за разумное время становилось все сложнее. Кое-что уже практически невозможно. А что будет с производительностью через пару лет - представить страшно. Надо что-то предпринимать! В этой статье поделюсь своим первым опытом применения СУБД Clickhouse от Яндекс. Как работает, что может, как на нее планирую (если планирую) переходить, сравнение скорости работы, оценка производительности через пару лет, пример работы из 1С. Все это приправлено текстами запросов, кодом, алгоритмами выполненных действий и преподнесено вам для ознакомления в этой статье.

1 стартмани

24.01.2024    5669    glassman    18    

40

HighLoad оптимизация Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Встал вопрос: как быстро удалить строки из ТЗ? Рассмотрел пять вариантов реализации этой задачи. Сравнил их друг с другом на разных объёмах данных с разным процентом удаляемых строк. Также сравнил с выгрузкой с отбором по структуре.

09.01.2024    14010    doom2good    49    

71
Вознаграждение за ответ
Показать полностью
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Ta_Da 08.05.13 23:49 Сейчас в теме
Чтобы доказать, что важна не только пропускная способность сети, Вы сравнили три контроллера (с пропускными способностями 1Гбит, 5 Гбит и 10 Гбит) и пришли к выводу что, внезапно, оптимальным является контроллер с самой высокой пропускной способностью(10Гбит), так? Но при этом приписываете эту "победу" некоемому абстрактному "времени отклика" (которое у вас, похоже от пропускной способности не зависит?). Или я что-то упустил?
AlexK_2012; ustinov_greendale; diamond_nsk; romankoav; +4 Ответить
10. gallam99 237 13.05.13 09:25 Сейчас в теме
Добрый день, коллеги.
С прошедшими всех праздниками
Теперь по комментариям:
(1) Не так важно оборудование для исследования, целью статьи было следующее:
"Развеять миф о том, что если у вас не загружена сеть, то проблем с сетью нет", для этого сделано много замеров (большинство не вошло в конечную статью). Неожиданностью и для нас оказалось, что отклик в сетевом интерфейсе 10Гб в 2 раза лучше, чем для 1 Гб/с, но пока эти исследования не проведешь - не докажешь этот факт.
Почему " "победу" некоемому абстрактному "времени отклика" " - это не абстрактная характеристика, просто большинство сетевых плат для Ethernet продаются без нее, а она очень важна как раз для трафика информационной системы.
(3) Нет, замеряли своими методами через отправку/получения маленького пакета.
(4) "Ваш совет устанавливать насколько возможно более производительное серверное оборудование без споров принимаем" - нет, это не совсем вывод статьи. Вывод: учитывать отклик очень важно при выборе оборудования. + Приведена интересная таблица для оценки разницы. Приведу пример: стоит выбор между 100Мб/с и 1 Гб/с. Администратор утверждает, что сеть 100 Мб/с загружена на 15%, следовательно, сетевой интерфейс справляется и обновления не требуется. При большом количестве пакетов (запросов в секунду) отклик повлияет на скорость системы в целом, значит надо провести доп. работы для исследования этого параметра и выводы администратора не правильны (вероятность ошибки большая).
По поводу общей производительности (память, ЦПУ, диск) - много можно сказать, тем более что мы этим активно занимаемся - softpoint.ru. Не совсем по теме статьи. Если будут вопросы, пишите в личку.
(6) Мы активно участвовали в обсуждении темы автора, есть с чем согласны - есть то, с чем не согласны.
Жду дальнейших вопросов
2. miandrew 08.05.13 23:53 Сейчас в теме
Отличная статья, будет хоть что показать админу. А то еле-еле допросиля чтоб хоть 1Gb поврубал...
3. ardn 657 09.05.13 06:04 Сейчас в теме
Время отклика не пробовали смотреть smokeping'ом например?
4. ksnik 593 09.05.13 12:01 Сейчас в теме
Здравствуйте, с праздниками! :-) Ваш совет устанавливать насколько возможно более производительное серверное оборудование без споров принимаем, но думаем что при 300 пользователях узким местом в этой связке является не сетевой интерфейс, а количество и качество оперативной памяти SQL-сервера (процессор нагружен) и почему-то рейд-массив сервера 1С8 (процессор сервера 1С8 не нагружен, но смотрим на растущий объем памяти и дампы под процессы rphost). Ничем другим кроме процессов сервера 1С8 и процессов клиентов 1С8 жесткие диски сервера 1С8 не заняты, однако часто выходят из строя. Подскажите пожалуйста, как это обосновать, вероятно жесткие диски "летят" потому, что сервер 1С8 ввиду низкой загрузки процессора со стороны ПО сервера и клиентов 1С гоняет слишком много темпов?
30. romankoav 4 07.12.16 14:18 Сейчас в теме
(4) Диски выходят из строя из-за неоптимальности кода - когда постоянно идут обращения неявные к базе (получение данных через точку)
5. AnryMc 848 09.05.13 13:34 Сейчас в теме
Насколько я понял, Вы намекаете, что сетевое оборудование разных производителей и разных моделей, на физическом уровне с разной скоростью реагирует на команду системы по формированию пакета для передачи в сеть?

А вывод? Быть может производители указывают в характеристике продукции параметр на который следует обратить внимание при покупке, кроме скорости поддерживаемой сети?
6. hogik 443 09.05.13 18:53 Сейчас в теме
Вот, думаю, можно еще по теме посмотреть: http://infostart.ru/public/147259/
Если экономить своё время, то читать с раздела: "ВЫВОДЫ".
Там и картинка есть про латентность... ;-)
7. ksnik 593 09.05.13 21:10 Сейчас в теме
(6) hogik, если по нужде ставят все на 1 самый навороченный комп (ссылку смотрел), тогда сложные месячные отчеты не могут сформироваться, недостаточно памяти. То есть отдельный сервер 1С все же нужен.
8. hogik 443 09.05.13 21:52 Сейчас в теме
(7)
"... недостаточно памяти. То есть отдельный сервер 1С все же нужен"(с)
Сергей (ksnik).
Архитектура NUMA и есть 2, 4, 8 "отдельных" серверов в одной "коробке".
С самым быстрым интерфейсом между этими "серверами" - оперативная память.
С возможностью поставить суммарный большой объем оперативной памяти (с учетом лимита объема памяти на один узел).
С возможностью отдать/управлять всем объемом памяти "коробки" ;-) на конкретную задачу, который (объем) Вы никогда не сможете обеспечить на обычной архитектуре.
9. ksnik 593 10.05.13 21:03 Сейчас в теме
(8) hogik, почитал про когерентность кэш-памяти бо оперативка просто-напросто надолго забивается при обработки наборов данных запросов, но кажется что не очень подходит для борьбы с нехваткой памяти, кажется нужно делать как можно мощней проц и больше памяти MSSQL, на сервере 1С работать над утечкой памяти и неизвестно чем еще, неизвестно как выбирать железо в связке"оперативка-рейд" чтоб не ломалось.
11. gallam99 237 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. PiccaHut001 13.05.13 19:25 Сейчас в теме
softpoint.ru вся понятно, ребятки хотят баблосика поднять.
13. gallam99 237 13.05.13 19:29 Сейчас в теме
(12) Статья носит чисто информационный характер и может кому-то помочь при решении вопросов выбора сетевого оборудования.
14. gallam99 237 16.05.13 11:11 Сейчас в теме
+ скоро доработаем бесплатное ПО для проверки сетевого интерфейса вашей системы 1С 8.Х (будет измеряться количество запросов в секунду и деградация между сервером приложений 1С и сервером БД).
15. miandrew 16.05.13 11:25 Сейчас в теме
(14) вот это уже ближе к "телу". Тогда и статистика от людей подсобирается.... что да как у кого..
16. ardn 657 20.05.13 13:55 Сейчас в теме
(14) Хотелось бы посмотреть
17. AVMCo 25.06.13 19:01 Сейчас в теме
Статья конечно интересная, но сервер - это не только сетевая карта и провода. На скорость работы оного поболе влияют ЖД и память (из личного опыта), причем не обязательно увеличение последней, на третье место поставлю процессор. Да еще Винда сама по себе со временем начинае притормаживать, если не проводить определенных манипуляций, так уж она запрограммирована своими создателями, от этого никуда!
18. briuhov 25.06.13 20:39 Сейчас в теме
(17) AVMCo, Я с тобой сагласен на 100 процентов.Сам не раз сталкивался с такой проблемой дико висела сеть.
Решилось установкой нового винта SSD и все полетело.
20. gallam99 237 25.06.13 22:13 Сейчас в теме
(17) AVMCo,
Если статья интересная, где "+"))
А если серьезно, я бы не использовал слово " поболе влияют ЖД и память (из личного опыта)", а заменил бы на чаще. Но, учитывая тот факт, что сам занимаюсь проблемами производительности, могу казать так - проблемы сети не всегда так очевидны, и их понимание в контексте учетных систем главная задача статьи.

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

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

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

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

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

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

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