Введение
Проблемы балансировка ресурсов являются особенно актуальными в настоящее время, так как с каждым днем увеличивается количество серверов, предоставляющих пользователям различные ресурсы. Для наиболее эффективного взаимодействия пользователя и предоставляемых ресурсов необходимо определить, какие сервисы являются наиболее подходящими для тех или иных задач.
Постановка проблемы
На данный момент объём информация постоянно увеличивается, сама информация имеет разные формы, представление. Каждый человек изо дня в день сталкивается и узнает все больше и больше информации.
Существующие на сегодняшний день технологии предоставляют каждому человеку доступ к той или иной информации, поэтому необходимо сбалансировать ресурсы таким образом, чтобы каждый пользователь имеющий доступ к ресурсам получал весь объем информации с как можно меньшими временными задержками.
Алгоритмы балансировки ресурсов
В данный момент существует множество алгоритмов балансировки информационных ресурсов. Рассмотрим некоторые из них.
Algoritm Round Robin (RR)
Данный алгоритм распределяет запросы пользователей по круговому циклу. Т.е. первый запрос передается первому серверу, следующий второму и так далее. Как только запрос передается последнему серверу, последующий запрос передается первому серверу и так далее.

Algoritm Equally Spread Current Execution Algorithm (ESCE)
В данном алгоритме задача балансировки, рассматривается как очередь заданий, которые передаются на разные виртуальные машины. Балансировщик просматривает очередь для каждой виртуальной машины. Так же балансировщик хранит список поставленных задач на каждую виртуальную машину, что помогает определить, какие виртуальные машины свободны.

Algoritm Throttled Load Balancing Algorithm (TLB)
В данном алгоритме, задача балансировки, рассматривается как очередь заданий, у которых существует приоритеты. Приоритеты могут быть назначены, по размеру, длине и многим другим параметрам, в зависимости от поставленной задачи. Чем выше приоритет, тем раньше обрабатывается запрос.

Для определения эффективности алгоритмов по времени отклика серверов, необходимо вычислить общее время обработки пользовательских ресурсов пользователя. Для этого необходимо создать несколько файлов, и высчитать время обработки файлов, с использованием алгоритмов, и без алгоритмов. Будем использовать 3 облачных сервера: Yandex.Disk, MediaFire, DropBox.
Без использования алгоритмов
В данном случае каждый файл будет передаваться трем серверам.
В таблице 1 представлены значения времени работы для Yandex.Disk, MediaFire, DropBox серверов, на выборке девяти файлов без использования какого либо алгоритма.
Файл | Время для YandexDisk | Время для MediaFire | Время для DropBox |
1.html | 2,140465021 | 5,111413002 | 1,505884886 |
10.doc | 2,460971832 | 8,679579973 | 4,442924976 |
100.doc | 1,136919975 | 5,333097219 | 1,820110083 |
11.doc | 1,483475924 | 5,229697943 | 1,876884937 |
12.txt | 1,017494202 | 3,808369875 | 1,394765139 |
13.txt | 1,096071005 | 3,783949137 | 1,420444012 |
14.txt | 1,039769888 | 3,80785799 | 1,273787022 |
15.doc | 1,843998909 | 5,703485012 | 2,037261963 |
16.txt | 1,133949995 | 3,678789854 | 1,433843851 |
На рисунке 4 представлена гистограмма для данных из таблицы 1.

В RR алгоритме имеет таблица серверов, по ней определяется последовательность передачи файлов облачным серверам.
Пусть имеется N — фалов, которые необходимо отправить на сервер, и m — серверов, которые должны принять файлы. Каждый N файл равны по своим свойствам между собой, серверы m имеют равный приоритет. Тогда первый файл(запрос) отправится на сервер m=1, второй на m=2 и так далее. При достижение последнего сервера m=N, тогда следующий файл будет отправляться на сервер m=N+1 и так далее. Таким образом передача происходит по круговому циклу.
В таблице 2 представлены значения времени работы для Yandex.Disk, MediaFire, DropBox серверов, на выборке девяти файлов с использованием алгоритма Round Robin.
Файл | Время для YandexDisk | Файл | Время для MediaFire | Файл | Время для DropBox |
1.html | 0,736094952 | 10.doc | 5,559982061 | 100.doc | 5,112015963 |
11.doc | 1,182497025 | 12.txt | 5,075534105 | 13.txt | 1,640244007 |
14.txt | 1,355260849 | 15.doc | 4,171220064 | 16.txt | 1,926867008 |
На рисунке 5 отображены зависимости времени передачи файлов на количество файлов.

В ESCE алгоритме имеет таблица серверов и очередей, по ним определяется последовательность передачи файлов облачным серверам. В данном алгоритме существует m — серверов, с Qm очередями. Каждый файл распределяется таким образом, что каждая очередь Qm проверяются на размер. Таким образом, первым обрабатывает сервер m, у которого в очереди наибольшее количество файлов. Вначале с очереди извлекается первый файл в очереди, отправляется на сервер, следующий запрос добавляется в ту очередь, в которой меньше всего файлов.
В таблице 3 представлены значения времени работы для Yandex.Disk, MediaFire, DropBox серверов, на выборке девяти файлов с использованием алгоритма ESCE.
Файл | Время для Yandex | Файл | Время для MediaFire | Файл | Время для DropBox |
1.html | 0,570181847 | 10.doc | 5,08779788 | 100.doc | 6,482433081 |
11.doc | 0,659991026 | 12.txt | 5,208521128 | 13.txt | 2,814773083 |
14.txt | 0,499054193 | 15.doc | 6,812680006 | 16.txt | 1,410949945 |
На рисунке 6 представлены зависимости времени обработки файла сервером от количества файлов в очереди.

В TLB алгоритме имеется таблица серверов и очередей, при этом существуют приоритеты на отправку файлов на облачные сервера.
В данном алгоритме существует m — серверов, с Qm очередями. У каждой очереди есть свои приоритеты. Приоритеты выставляются по размерам файлов. Очередь с наименьшим приоритетом считается, та в которой хранятся файлы меньше 12 байт, с средним приоритетом, в которой файлы находятся в диапазоне 12
В таблице 4 представлены значения времени работы для Yandex.Disk, MediaFire, DropBox серверов, на выборке девяти файлов с использованием алгоритма TLB.
Маленький размер файла (x<=12) | Большой размер файла (150 | Средний размер файла (12 | |||
Файл | Время для YandexDisk | Файл | Время для MediaFire | Файл | Время для DropBox |
12.txt | 1,068703175 | 10.doc | 8,882771969 | 1.html | 2,463931084 |
13.txt | 1,065548897 | 100.doc | 2,845941782 | ||
14.txt | 1,22414279 | 11.doc | 2,147398949 | ||
16.txt | 1,015133858 | 15.doc | 2,204469919 |
На рисунке 7 представлены зависимости времени обработки файла сервером от количества файлов в очереди.

В ходе расчета измерений было установлено общее время обработки серверами файлов пользователя, которые представлены на рисунке 8 и в таблице 5.
Общее время выполнения | |
Алгоритм | Время |
Без алгоритма | 75,69526362 |
RR | 26,75971603 |
ESCE | 29,54638219 |
TLB | 22,91804242 |

Вывод
Из расчета измерений можно сделать вывод, о том, что необходимо использовать алгоритмы балансировки, для сокращения времени отклика. Каждый алгоритм работает по разному, но из рисунка 11 можно сделать вывод, что наиболее эффективней использовать алгоритм TLB. За счет приоритета, в этом алгоритме сокращается время отклика сервера.