СИСТЕМА ОПРЕДЕЛЕНИЯ НАГРУЗКИ НА ВИРТУАЛЬНЫЕ СЕРВЕРЫ

Область техники, к которой относится полезная модель
Полезная модель относится к виртуальным серверам, в частности, к определению нагрузки, создаваемой отдельным виртуальным сервером на физические ресурсы компьютера или другой вычислительной системы, поддерживающей множество виртуальных серверов. Данная полезная модель может использоваться для оптимизации условий работы компьютера или другой вычислительной системы путем определения нагрузки, создаваемой виртуальным сервером и последующего обоснованного перераспределения ресурсов между вычислительными системами или виртуальными серверами.
В данном случае, под «нагрузкой» понимается процент использования отдельным виртуальным сервером в общем потреблении аппаратных ресурсов реального сервера.
При использовании виртуальных серверов в системах интернет-хостинга существует проблема определения потребления реальных ресурсов отдельными виртуальными серверами. Предоставляемые операционной системой средства определения потребления ресурсов, например, диспетчер задач Windows 8, описанный на интернет странице: http://interface31.ru/tech_it/2011/11/dispetcher-zadach-windows-8.html, определяют общую загрузку вычислительной системы, а также использование ресурсов отдельными процессами.
В связи с тем, что один и тот же процесс может использоваться различными виртуальными серверами, не всегда возможно определить, для целей какого сервера используется оперативная память, дисковое пространство или время центрального процессорного устройства.
Таким образом, в настоящее время не существует надежных способов и систем, обеспечивающих измерение или вычисление реальной нагрузки на аппаратную часть серверов, создаваемой отдельными виртуальными серверами.
Технический результат, обеспечиваемый при реализации полезной модели заключается в повышении точности и достоверности определения нагрузки, создаваемой отдельными виртуальными серверами, например, контейнерами и виртуальными машинами.
Для достижения технического результата система для определения степени загрузки виртуального сервера, содержит:
- центральный процессор;
- блок управления центральным процессором, выполненный с возможностью выделить время исполнения определенных действий совокупности виртуальных серверов, расположенных на сервере и выполненных с интерфейсом, через который на виртуальные серверы поступают команды управления;
- датчик использования ресурсов сервера;
- датчики команд, поступающих через интерфейсы виртуальных серверов;
- блок сортировки команд, выполненный с возможностью объединять для каждого виртуального сервера команды по соответствующим типам команд;
- блок формирования гипотез о связи потребления виртуальным сервером ресурсов сервера с группами команд для каждого сервера;
- коррелятор, выполненный определяющим несоответствие суммы потребляемых виртуальными контейнерами ресурсов, согласно гипотезам, с реально используемыми ресурсами сервера и формирующим сигнал несоответствия при заранее заданном размере несоответствия, причем блок генерации гипотез выполнен уточняющим гипотезу для, по крайней мере, одного виртуального сервера, при обнаружении сигнала несоответствия.
В частном случае реализации устройства при изменении гипотезы для одного виртуального сервера значение несоответствия не изменяется, происходит возврат к прежней гипотезе для данного сервера и изменяется гипотеза для другого сервера.
Данная полезная модель предназначена для улучшения условий работы компьютера или другой вычислительной системы путем определения нагрузки, создаваемой виртуальным сервером.
При использовании программного обеспечения, поддерживающего виртуальные сервера на аппаратных серверах в вычислительных центрах, совокупность программного обеспечения (виртуальный сервер), обслуживающего одного пользователя или одну специфическую задачу пользователя, на выполнение инструкций, а также на обслуживание сопутствующих задач, тратятся ресурсы аппаратного сервера. Например, на обслуживание программного кода тратится время центрального процессора, для хранения данных используется дисковое пространство. Для проведения вычислений и хранения промежуточных результатов используется оперативная память, сетевые приложения используют сетевые каналы связи. В момент выполнения задачи выделяется некоторая часть свободных в настоящий момент ресурсов. В зависимости от типа производимых действий, той или иной задаче может требоваться больше или меньше ресурсов: для выполнения одних задач достаточно 1% процессорного времени (потому что основное время тратится, например, на ввод/вывод или на ожидание данных), некоторые же сложные вычисления и обработка данных могут потребовать 70% ресурсов процессора или более. Точно так же различным задачам требуется больше или меньше оперативной памяти, высокая или низкая дисковая активность. Тем не менее, экспериментально установлено, что в пределах одного виртуального сервера одинаковые задачи потребляют, примерно, одинаковое количество ресурсов, тогда как потребление ресурсов одинаковыми задачами, относящимися к различным виртуальным серверам, может различаться существенно. Это часто связано с тем, что отдельные виртуальные сервера предназначены для обслуживания однотипных операций, например, одни сервера могут регистрировать запросы пользователей на покупку потребительских товаров, что требует большого количества вычислений, на один запрос и частого обращения к локальным базам данных и не требует большого количества интернет данных, а другие сервера могут использоваться для широковещательной трансляции мультимедийного контента, что сопровождается большим объемом исходящего трафика и хранением большого объема данных на дисках, тогда как вычислительная нагрузка на систему минимальна.
На чертежах показано:
на фиг. 1 - схематически показана структура полезной модели с обозначением взаимодействия всех составляющих частей системы для определения нагрузки на систему и оптимизации работы системы, согласно одному из возможных вариантов осуществления;
на фиг. 2 - графическое представление последовательности операций, осуществляемых полезной моделью для выявления нагрузи на систему;
Для того, чтобы нагрузка на виртуальные серверы распределялась оптимально, необходимо правильно определять нагрузку, создаваемую отдельными серверами, и, при необходимости, либо перераспределять нагрузку, либо изменять объем доступных отдельным виртуальным серверам ресурсов.
Клиент-серверные и Web-технологии предназначены для эффективной реализации функциональности прикладных программных систем, создания условий для эффективной реализации системы бизнес-процессов компании. В них процессы обработки информации распределены между сервером БД, клиентской и серверной частями. Сервер приложений получает данные от сервера БД, обслуживает N приложений. Каждое приложение обслуживает N клиентов, а один клиент может работать с N приложениями.
Принципиальные преимущества этих технологий: снижение уровня требований к мощностям рабочих станций; сегментация логики из-за перемещения части кода на вторичные серверы, распределения процессорного нагрузки, повышение надежности и доступности; упрощение проблемы масштабирования; оптимизация серверов под выполнение конкретных задач, уменьшение непроизводительных затрат. Кроме того, Web-технологии обеспечивают высокую степень независимости основных компонентов программных систем, хотя, с другой стороны, по сравнению с клиент-серверными технологиями они менее безопасны.
Технологии виртуализации предназначены для абстрагирования от особенностей отдельных групп ресурсов и объединение их в аппаратно-программные комплексы нужной конфигурации - для упрощения управления ими. Выделяют виртуализации платформ, которая касается процесса создания виртуальных машин, и виртуализацию ресурсов, которая переносит подходы к созданию виртуальных машин на все виды ресурсов (оборудование, пространства имен, сети и т.п.). Виртуализация обеспечивает снижение операционных затрат на поддержку парка серверов, повышение доступности ИТ-сервисов и другие преимущества.
Технологии кластерного хостинга нацелены на решение проблем типовых распределенных ИТ-инфраструктур, виртуализирующие ресурсы, которые предоставляют физические серверы. Совместная эксплуатация нескольких систем улучшает отношение цены к качеству, достижения высокой готовности и производительности и балансировки нагрузки.
На каждом узле выполняется отдельная копия заданных серверных приложений (например, приложений для веб-, FTP- и Telnet-сервера). Балансировка сетевой нагрузки распределяет входящие клиентские запросы между узлами в кластере. Нагрузку, которую должен обрабатывать каждый узел, можно настроить в соответствии с требованиями. Если нужно обработать дополнительную нагрузку, узлы можно добавлять к кластеру динамически. Кроме того, балансировка сетевой нагрузки может направлять весь поток данных на один предназначенный для этого узел, называемый узлом по умолчанию.
Балансировка сетевой нагрузки позволяет обращаться ко всем программам в кластере. Для приложений с балансировкой нагрузки при сбое на узле или его отключении нагрузка автоматически перераспределяется между работающими узлами виртуального сервера. При сбое или неожиданном отключении компьютера от сети все активные подключения к такому серверу будут потеряны. В любом случае, компьютер вне сети, когда он будет готов к работе, может снова присоединиться к кластеру в рабочем режиме и взять на себя часть нагрузки, что позволит снизить объем данных, приходящийся на виртуальные серверы компьютера.
На фиг. 1 показан пример структурной схемы полезной модели с обозначением взаимодействия всех составляющих частей системы для определения нагрузки на систему и оптимизации работы системы. Пример системы, показанный на фиг. 1, содержит монитор 10 или дисплей, предназначенный для вывода результата на обозрение пользователя; вычислительное устройство общего назначения в виде центрального процессора 11; оперативно запоминающее устройство 12; жесткий диск 13; сетевую карту 14; датчики 20, обеспечивающих определение количества запросов или других команд, сформированных отдельными виртуальными серверами или поступивших на виртуальные сервера извне и системную шину 16, которая объединяет вышеперечисленные компоненты системы. Также система содержит датчики 15, определяющие использование реальных ресурсов вычислительной системы в каждый момент времени. Системная шина предназначена для согласованной передачи данных и команд управления между элементами системы. Датчики 15 определяет степень и общий объем потребления компьютером ресурсов - загрузка процессора в разные моменты времени, использование сети, использование оперативной памяти. Системная шина 16 может быть шиной любого типа, обеспечивающая передачу данных, адресов и команд управления между элементами системы, в том числе, может содержать аппаратный контроллеры и другие активные элементы, обеспечивающие функции управления потоками передачи данных и может быть построена по любой архитектуре шин, соответствующей требованиям вычислительной системы. Коррелятор 17, при поддержке центрального процессора 11, и с использованием системной шины 16 посредством непосредственно взаимодействует с датчиками 15 и 20. Датчики 20, каждый из которых может соответствовать как отдельному виртуальному серверу, так и отдельной группе команд виртуального сервера, определяют текущую активность виртуальных серверов 18, перехватывая команды, проходящие через интерфейсы 19 виртуальных серверов. В том случае, если датчики не настроены на конкретные команды, в частном случае реализации полезной модели, информация с датчиков 20 поступает на блок сортировки команд 21.
Таким образом, с одной стороны, коррелятор получает данные о реальном потреблении ресурсов вычислительной системы, а с другой - косвенные данные об активности и видах активности отдельных виртуальных серверов. Установить точную связь между этими параметрами позволяет использование блока формирования гипотез 22.
В частном случае реализации полезной модели, функциональность блока формирования гипотез позволяет назначить весовой коэффициент для определенной группы команд определенного виртуального сервера, например, для группы команд, соответствующих запросу с использованием протокола шифрования или группы команд, приводящих к выходу на стартовую страницу или страницу 404 - «данные не найдены». Например, при простой стартовой странице сайта, поддерживаемой виртуальным сервером, запрос от внешнего пользователя с указанием стартовой страницы не приводит к существенному потреблению ресурсов, а запрос к тому же сайту по защищенному протоколу с необходимостью активной генерации контента приводит к высокой загрузке процессора. При этом, распознать необходимость генерации контента, например, таблиц или графиков не всегда представляется возможным. Также, если стартовая страница сайта, обслуживаемого другим виртуальным сервером, содержит активный контент и использует внешние ресурсы, такой запрос может формировать относительно высокую нагрузку на процессор и повышать объем входящего трафика. В частном случае реализации, при таком подходе весовые коэффициенты могут быть найдены путем решения переопределенных систем уравнений или путем определения реальной нагрузки, создаваемой, когда активен, преимущественно один виртуальный сервер.
Таким образом, блок формирования гипотез формирует данные, которые могут использоваться как функциональные параметры, для приведения в соответствие отдельных запросов с вызванной этими запросами нагрузкой на процессор, оперативную память, дисковое пространство или другие аппаратные элементы вычислительной системы.
Коррелятор использует такого рода функциональные параметры, для преобразования вместе с сигналами датчиков 20 для выявления возможного соответствия вычисленного потребления ресурсов и реального потребления ресурсов, определенного с использованием датчиков 15. В том случае, если удается выявить соответствие, например, варьируя временные интервалы между поступлением команд на виртуальные сервера и предполагаемым изменением потребления нагрузки, гипотеза признается подтвержденной и, в дальнейшем может использоваться как источник данных о потреблении ресурсов конкретным виртуальным сервером. В том случае, если выявить корреляционную зависимость не удается, блок формирования гипотез 22 уточняет или изменяет гипотезу, например, путем применения другого метода решения систем уравнений.
На фиг. 2 изображено графическое представление последовательности операций, осуществляемых полезной моделью для выявления нагрузи на систему.
Данная схема алгоритма действия полезной модели начинается с шага 210 - старта работы систем.
На шаге 220 формируется первоначальная гипотеза блоком формирования гипотезы.
На шаге 230 происходит проверка гипотезы. Проверка гипотез происходит каждый раз, как только появляется новая. Проверка гипотез осуществляется путем сравнения вычисленного на основании гипотезы потребления ресурсов с реальным потреблением ресурсов. Если есть возможность проверить гипотезу только для одного сервера, то она проверяется и, для тех серверов, для которых сформированы успешные гипотезы, дальнейшее изменение гипотез не проводится. Проверка гипотезы для одного сервера может проводиться в периоды относительно высокой активности такого сервера, по старению с другими серверами.
На шаге 240 происходит переход к дальнейшему изменению гипотезы, если гипотеза неверная или правильная или прекращению поиска гипотез, если гипотезы сформированы успешно, на шаге 260. В частном случае реализации, периодически, например, 4 раза в сутки проводится проверка гипотез для исключения возможности появления скрытых ошибок при изменениях условий работы виртуальных серверов.
Подтвержденные гипотезы используются для определения нагрузки, создаваемой виртуальными серверами и формирования решений на основании этих данных. В качестве возможных решений могут быть миграция виртуального сервера в другую систему, упреждающее выделение виртуальному серверу аппаратных ресурсов, остановка сервера, формирующего недопустимо высокую нагрузку под действием вредоносного программного обеспечения.