В статье рассматриваются проблемные вопросы, возникающие при исследовании имитационных моделей. Разработаны имитационные модели поступления пакетов на сервера в среде моделирования AnyLogic. Исследована эффективность работы серверов в зависимости от интенсивности поступающих пакетов. Проведено итоговое сравнение результатов эффективности серверов. Сделаны выводы, показывающие необходимость имитационного моделирования.
Одна из основных задач моделирования – показать пользователю возможные решения той или иной задачи в понятном виде. Оно точно также может использоваться во всех отраслях деятельности человека, где не обойтись без компьютера. Например, при покупке различного оборудования необходимо знать, каким будет результат его работы: будет ли оно эффективно работать, какие ресурсы необходимы на поддержку этого оборудования.
Имитационное моделирование [1–12, 17–20], по мнению авторов, может помочь решить такие вопросы. При моделировании существует возможность рассмотреть все виды решений тех или иных вопросов. В качестве примера можно рассмотреть имитационную модель работы серверов.
Процесс имитационного моделирования обрёл свою популярность в современном мире [1, 3, 5, 6–8]. Массовое развитие информационных технологий сделало резкий скачок в развитии компьютеров и упростило задачу построения сложных систем. Сейчас выбор стоит перед тем, в какой среде моделирования будет эффективнее и быстрее решить те или иные вопросы, возникающие у пользователей. Вопросы моделирования о том, как сделать систему наиболее эффективной, наиболее отказоустойчивой, надёжной, быстрой и другие факторы, влияющие на работу этой системы, остаются и по сей день и с каждым днём развиваются всё больше и больше. Поэтому актуальность имитационного моделирования в настоящее время не вызывает сомнения.
Системы имитационного моделирования. В ходе выполнения работы было проведено сравнение нескольких систем имитационного моделирования, которые представлены в табл. 1.
Для решения поставленной задачи была выбрана среда моделирования AnyLogic [6–8, 12, 15, 16, 20]. Каждая среда моделирования имеет свои плюсы и минусы [12, 15–20], но именно AnyLogic наиболее подходящая по разнообразию используемых в ней инструментов. Среда имеет простой и понятный для пользователя интерфейс. AnyLogic поддерживает проектирование, разработку, документирование модели, выполнение компьютерных экспериментов с моделью, включая различные виды анализа – от анализа чувствительности до оптимизации параметров модели [8, 13, 14].
Результаты моделирования работы серверов в компьютерных сетях. В процессе моделирования компьютерной сети были взяты за основу элементы палитры Enterprise Library, которая позволяет смоделировать систему массового обслуживания [8, 13, 14]. Изначально была построена одноканальная СМО, которая учитывает количество поступающих пакетов на сервер от клиентских машин. Происходит подсчёт обработанных пакетов и необработанных (потеря пакетов).
Значения данных объектов указаны в табл. 2.
Далее для наглядности необходимо анимировать процесс поступления пакетов на сервер и вывести временную круговую диаграмму успешно обработанных запросов и потери пакетов. Так как диаграмма временная, то значения (в процентах) успешно обработанных пакетов и потерянных будут постоянно меняться.
Для построения диаграммы необходимы дополнительные объекты модели, которые представлены в табл. 3.
Работающая модель представлена на рис. 1.
После построения этой модели, была смоделирована двухканальная СМО, в которой используются 2 серверные машины для обработки пакетов.
Значения объектов указаны в табл. 4.
Таблица 3
Дополнительные объекты модели
Номер |
Объект |
Тип |
Назначение |
1 |
Procent |
Функция |
Функция, необходимая для подсчёта процентов Java-код функции: double procent; if (source = 0) procent = 0; else procent = exit/source*100; return procent; |
2 |
A |
Динамическая переменная |
Динамическая переменная для подсчёта обработанных пакетов Java-код переменной: Procent(source.count(),sink.count()) |
3 |
B |
Динамическая переменная |
Динамическая переменная для подсчёта потери пактов Java-код переменной: Procent(source.count(),sink1.count()) |
Рис. 1. Одноканальная модель работы сервера
Таблица 4
Объекты двухканальной модели
Номер |
Объект |
Тип |
Назначение |
1 |
Intensity1 |
Переменная |
Переменная, отвечающая за частоту поступления пакетов |
2 |
Slider |
Бегунок для ручного изменения значения переменной Intensity |
|
3 |
source1 |
Интенсивность поступления пакетов |
|
4 |
selectOutput |
Распределение поступающих пакетов на серверы 1 и 2 |
|
5 |
queue1 |
Очередь пакетов при поступлении на сервер 1 |
|
6 |
delay1 |
Задержка на обработку пакетов на сервере 1 |
|
7 |
sink2 |
Успешно обработанные пакеты на сервере 1 |
|
8 |
sink4 |
Потеря пакетов на сервере 1 |
|
9 |
queue2 |
Очередь пакетов при поступлении на сервер 2 |
|
10 |
delay2 |
Задержка на обработку пакетов на сервере 2 |
|
11 |
sink3 |
Успешно обработанные пакеты на сервере 2 |
|
12 |
sink5 |
Потеря пакетов на сервере 2 |
Таблица 5
Дополнительные объекты модели
Номер |
Объект |
Тип |
Назначение |
1 |
Procent1 |
Функция |
Функция, необходимая для подсчёта процентов Java-код функции: double procent; if (source1 = 0) procent = 0; else procent = (exit1+exit2)/source1*100; return procent; |
2 |
C |
Динамическая переменная |
Динамическая переменная для подсчёта успешно обработанных пакетов на 1 и 2 сервере вместе Java-код переменной: Procent1(source1.count(),sink2.count(),sink3.count()) |
3 |
D |
Динамическая переменная |
Динамическая переменная для подсчёта потери пакетов на 1 и 2 сервере вместе Java-код переменной: Procent1(source1.count(),sink4.count(),sink5.count()) |
Рис. 2. Двухканальная модель работы серверов
Как и в первом случае, необходимо проанимировать процесс поступления пакетов на сервера и построить диаграмму. Данные, необходимые для построения диаграммы, представлены в табл. 5.
Работающая двухканальная модель представлена на рис. 2.
Для сравнения эффективности работы были объединены эти 2 модели, одноканальную и двухканальную и было прослежено общее количество поступивших пакетов, пакетов, которые были успешно обработаны и когда происходила потеря. На двух круговых диаграммах это чётко видно (рис. 1, 2).
Можно сказать, что при одинаковой интенсивности поступления пакетов более производительной оказывается двухканальная модель и потери пакетов почти не наблюдается. Однако, при увеличении нагрузки и на двухканальную сеть, стоит учитывать пропускную способность сети, иначе начнётся потеря пакетов и система будет работать неэффективно.
Заключение. В ходе выполнения работы была сделана модель компьютерной сети обработки пакетов на сервере. Было произведено сравнение одноканальной сети (с одной серверной машиной) и двухканальной сети (с двумя серверными машинами), оценена эффективность работы этих сетей. Исходя из результатов проведённой работы, можно сделать выводы о необходимости имитационного моделирования.