English version
+7(343) звоните:2 110 256

Производительность системы "Бизнес Семантика"

При проектировании внедрения системы "Бизнес Семантика" необходимо четко понять требования к пропускной способности шины обмена. При этом нужно опираться на предполагаемые объемы и интенсивность обмена данными. Исходя из этого, станут понятны технические параметры сервера для размещения системы, и интервал опроса сервера, который нужно установить на клиентах. Эта статья дает всесторонний обзор производительности базовой версии сервера и клиента "Бизнес Семантика" при передаче данных в текущем режиме. Производительность нашего ПО в режиме блочной передачи данных, предназначенном для первоначальной синхронизации информации в интегрируемых системах, будет рассмотрена отдельно. Производительность "промышленной" версии "Бизнес Семантики" также остается за рамками этой статьи.

Тесты проводились на Linux-сервере скромной конфигурации (процессор 2x AMD Athlon(tm) II X2 240). Для проведения тестов более чем на одной машине, для размещения клиентов использовались компьютеры с процессором Intel Core 2 Duo 1.6 Mhz. В качестве клиентских систем выступал веб-коннектор в сочетании с базой MySQL систем index.CRM и Index5.

Для теста использовалась онтология, включающая два типа информационных объектов ("клиент" и "контакт с клиентом"), и 4 свойства этих объектов. Со стороны одной из клиентских систем база заполнялась случайными данными (генерировалось несколько сотен клиентов и контактов), затем происходила передача этой информации серверу, и ее распространение по другим клиентским системам. Все измерения, связанные с объемом информации, базируются на числе записей; число триплетов можно определить как число передаваемых записей, умноженное на 4. Число свойств слабо влияет на скорость обработки.

Следует отметить, что на клиенте-получателе передаваемые записи создавались, а не обновлялись - создание записи требует бОльших ресурсов.

Эффективная скорость передачи и оптимальный размер пакета

Итак, задачей первого теста было определение оптимального размера пакета для передачи, и эффективной скорости передачи информации в конфигурации, включающей сервер и два клиента. Для этого были проведены замеры времени обработки пакета, содержащего от 50 до 500 записей. Время обработки включает формирование пакета данных на клиенте-источнике, их передачу серверу, обработку сервером, передачу второму клиенту, помещение данных в базу второго клиента. Деление числа объектов в пакете на время обработки дает эффективную скорость обработки одного объекта. Кривая зависимости этого показателя от размера пакета имеет такой вид:

Эффективная скорость обработки данных в системе Бизнес Семантика

Как мы видим, оптимальная скорость обработки достигается при размере пакета в 100 записей. Полный цикл обработки такого пакета происходит, на нашем тестовом оборудовании, за 1.13 секунды. Значит, частоту опроса сервера клиентом разумно будет установить равной 2 секундам (при конфигурации с двумя клиентами), а максимальный размер пакета ограничить 100 записями. Это позволит гарантировать, что все пакеты будут обработаны вовремя, и обеспечит максимальную пропускную способность шины обмена (при такой конфигурации она составит 180 000 записей в час, или 720 000 триплетов в час). Разумеется, при других условиях эти показатели могут быть другими - нашей задачей было продемонстрировать алгоритм определения оптимальной частоты опроса и размера пакета.

Распределение нагрузки между сервером и клиентом

Для планирования размещения клиентов и сервера на оборудовании, важно понять, как распределяется нагрузка при передаче между клиентом и сервером. Следует отметить, что при использовании двух клиентских систем все операции выполняются, фактически, последовательно: формирование пакета данных первой системой - обработка сервером - получение пакета данных второй системой. Поэтому в случае двух систем разнесение сервера и клиентов на разные машины дает небольшой проигрыш в производительности, за счет того, что возникает необходимость передавать данные по сети. Выигрыш от распределения модулей по разным физическим серверам может быть достигнут только при интеграции трех и более систем.

Результаты измерения нагрузки на модули клиента и сервера показаны на диаграмме ниже.

В случае интеграции двух систем, суммарная нагрузка на сервер получается в 2.5 раза меньшей, чем на любой из клиентов. Как изменяется это соотношение при увеличении числа информационных систем - мы рассмотрим ниже.

Что касается распределения нагрузки между операциями приема и передачи - в условиях нашего эксперимента получение данных требует на 30% больше ресурсов, чем передача.

Изменение нагрузки при росте числа систем

Необходимо выяснить, как изменится нагрузка на систему обмена, при росте числа интегрируемых информационных систем. Мы провели нагрузочное тестирование при передаче одного и того же объема данных от одной системе всем остальным, в архитектуре с двумя, треми и четырьмя обменивающимися системами. Сервер и клиенты были разнесены на разные физические машины. Результаты измерений показаны ниже.

Нагрузка на систему интеграции при объединении нескольких клиентских систем

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

Таким образом, подтверждено одно из основных свойств продукта "Бизнес Семантика" - способность эффективно работать в инфраструктуре обмена, включающей более чем две информационные системы.