186.70K
Category: programmingprogramming

Проектирование кластеров для распределенных серверов

1.

САНКТ–ПЕТЕРБУРГСКОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
«САНКТ–ПЕТЕРБУРГСКИЙ ТЕХНИЧЕСКИЙ КОЛЛЕДЖ
УПРАВЛЕНИЯ И КОММЕРЦИИ»
РЕЗЮМЕ
к студенческому проекту
Проектирование кластеров для распределенных серверов
Начало разработки:
01.08.2019
Окончание разработки:
28.12.2019
Выполнил:
студент группы 9КС-41
А.М. Симонов
Санкт-Петербург
2020 г.
Руководитель:
Н.С. Лазуткина

2.

Введение
Объект исследования: распределение нагрузки от служб и программ по нескольким
серверам с обеспечением их стабильной работы и взаимодействия.
Предмет исследования: кластер серверов, используемые службы и программы.
Цель исследования: снизить нагрузку на основной сервер для повышения
стабильности его работы и производительности.
Гипотеза исследования: разгрузка основного сервера и распределение нагрузки по
нескольким серверам позволит повысить стабильности работы конкретного
приложения и позволит более гибко менять решение подстраиваясь под задачи
сегодняшнего дня.
<дата/время>
<нижний колонтитул>
2

3.

Задачи исследования
1) Провести анализ технической литературы в исследуемой области;
2) Определить требования к информационной системе;
3) На основе теоретической части разработать концепт будущего кластера;
4) Провести анализ рынка хостинговых компаний и на конкурсной основе выявить
наиболее выгодные условия для реализации проекта;
5) Разработать программное обеспечение для работы и управления кластером;
6) Апробировать реализованную систему.
<дата/время>
<нижний колонтитул>
3

4.

Актуальность проекта
Распределение нагрузки с одной машины по кластеру и обеспечение их взаимодействия
в современном мире являет собой крайне важный аспект, поскольку количество
потребляемых ресурсов растет, а обеспечить высокую и гибкую мощность в пределах
одной машины практически невозможно и нецелесообразно
Потому перед компаниями встает вопрос об аренде нескольких серверов с различным
назначением и распределением нагрузки между ними. Однако технически реализовать
это не всегда представляет возможным в силу нехватки или дороговизны специалистов,
а также отсутствия общедоступных решений.
<дата/время>
<нижний колонтитул>
4

5.

Краткая суть проектной идеи
Перед разработчиком стоит задача создать информационную систему, в рамках которой
нагрузка от приложений и сервисов будет распределена между разными устройствами.
Арендуются несколько серверов и между ними устанавливается и настраивается связь и
взаимодействие для обеспечения бесперебойной и стабильной работы приложений и
сервисов заказчика.
В данном случае, у заказчика эксплуатируются игровой сервер на платформе
«Minecraft», веб-сайт, базы данных, внешние приложения, интегрированные с сервисом
«Discord», а так же прочие приложения и сервисовы, находящихся в распоряжении
заказчика.
<дата/время>
<нижний колонтитул>
5

6.

Возможность смены направления
Изначально разработанный под конкретные требования заказчика, тем не менее,
данный проект имеет возможность интеграции в другие подобные сервисы малого
масштаба, но ресурсоемкие.
Игровой сервер на платформе «Minecraft» может быть заменен любым другим
приложением, потребляющим большое количество ресурсов, некоторые другие
элементы могут быть исключены, а количество серверов подстроено под сегодняшние
требования заказчика.
<дата/время>
<нижний колонтитул>
6

7.

Новизна проекта
Общая проектная идея не является новой — кластеры серверов существовали и до этого
и актуальны были до этого. Однако, данный проект представляет свой взгляд на
возможное решение для совсем юных проектов, зачастую разрабатывающихся
индивидуальными предпринимателями или малыми фирмами.
Решения, используемые крупными фирмами, зачастую не подходят для эксплуатации
тем, кто лишь в начале развития собственного дела. Основной упор в данном проекте
делался на простоте развертки, эксплуатации и обслуживания.
Отсутствие решений в свободном доступе создает некоторую проблему для
начинающих при работе с большими данными или приложениями с высокими
требованиями к аппаратному обеспечению.
<дата/время>
<нижний колонтитул>
7

8.

Результативность
В ходе интеграции данного проекта удалось достичь распределения нагрузки на
основной сервер и сервер баз данных, когда раньше нагрузка приходилась лишь на
один.
<дата/время>
Рисунок 1 — Графики нагрузки сервера баз данных
<нижний колонтитул>
8

9.

Результативность
Основной сервер с запущенным игровым программным сервером все еще остается
высоко нагруженным устройством (рисунок 2), однако, согласно рисунку 1, удалось
снизить нагрузку на ЦП основного сервера на 30%, что весьма существенно.
<дата/время>
Рисунок 2 — Нагрузка основного сервера
<нижний колонтитул>
9

10.

Опыт внедрения
Данный проект был внедрен для игрового проекта «Krampus Project», что позволило
повысить общую производительность каждого отдельного сервиса и при этом снизить
стоимость используемого ими на тот момент решения, так как в рамках данного проекта
предоставлялось более выгодное по денежным средствам решение, но затрудненное в
плане технической реализации.
<дата/время>
<нижний колонтитул>
10

11.

Опыт внедрения
Как показано на рисунке 3, количество событий (тики) обрабатываемых в секунду, в
среднем за день, после внедрения проекта 29.12.19, повысило стабильность данного
значения.
Тики в секунду
25
20
ТПС
15
10
ТПС
5
43793
43797
43801
43805
43809
43813
43817
43821
43825
43829
43833
43837
43841
43845
43849
43853
43857
0
43861
Дата
Рисунок 3 — График обрабатываемых игровых событий в секунду в среднем за день
<дата/время>
<нижний колонтитул>
11

12.

Возможности расширения
Данный проект является легко расширяемым под нужды заказчика, однако данные
решения не подойдут для проектов среднего и крупного бизнеса, где зачастую
приходится работать с большими данными.
Дальнейшая работа над кодом и технологиями позволить расширить лимиты работы
проекта до, возможно, среднего бизнеса, однако это требует куда больших
материальных и человеко-часовых вложений, в том числе и наличие технических
специалистов, способных обслуживать куда более крупный кластер оборудования.
Однако, подобное расширение выбивается за изначальные рамки предоставления
решения для индивидуальных предпринимателей, физических лиц и малых
юридических лиц.
<дата/время>
<нижний колонтитул>
12
English     Русский Rules