Рисунок 28 . Зависимость времени работы алгоритма от числа клиентов

Из данного графика видно, что разработанный алгоритм распределения имеет экспоненциальную сложность. Но при числе клиентов, меньших 90000, он показывает достаточно хороший результат, время его работы составляет меньше 10 минут. Результат показывает, что данный алгоритм может быть применен в тех образовательных учреждениях, в которых число клиентов, проживающих в одном городе, меньше 80000-90000 человек. Для сравнения в крупной компании Юниум-ФТК число клиентов в Москве варьируется в пределах 10000-20000 человек.

Для числа клиентов, меньших 5000, время работы алгоритма меньше 10 секунд. Это связано с тем, что для набора даже одной группы в некоторых ОЦ не хватает клиентов. Рекурсивный алгоритм отрабатывает гораздо быстрее вследствие уменьшения числа возможных ситуаций.

4.2 Нагрузочное тестирование

Очень часто появляется необходимость протестировать работу сервера под реальной нагрузкой. Например, предприятие хочет закупить новое оборудование для развертываемого приложения, и необходимо узнать, насколько мощное оборудование необходимо закупать. Полезно было бы посмотреть, как поведет себя сервер, если с ним будут работать одновременно, например, 100 пользователей, но непонятно, как можно организовать такую проверку.

Данное исследование будем проводить на персональном компьютере с процессором Core i5 2410M 2300 Mhz. Это процессор, имеющий 2 физических ядра, на каждом из которых работают по 2 логических. Остальные характеристики компьютера не являются столь важными для данного исследования.

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

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