Как работает хайпер

Как работает хайпер Хостинг

Если в простых словах, Hyper-V — это механизм, при помощи которого одну операционную систему Windows можно запустить внутри другой. Рассмотрим, что это такое, как активировать и использовать (на примере запуска Windows 7 из-под Windows 11).

Принцип работы VDS включает в себя достаточно много элементов. Один из самых важных – виртуальная машина. Провайдеры внедряют разные технологии виртуализации, но одной из самых популярных является именно Hyper-V. Поговорим подробнее о том, как это все работает и почему стоит выбирать именно такую платформу.

Что такое Hyper-V?

Hyper-V — система аппаратной виртуализации от Microsoft, позволяющая на одном и том же компьютере запускать несколько ОС. Механизм Hyper-V сам запускается и управляется из рабочей среды Windows. Операционная система, в которой развернута система аппаратной виртуализации, называется хост-системой. А те ОС, что запущены с использованием инструментария Hyper-V, именуются гостевыми системами.

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


31 января 2017, 16:50


Как работает хайпер

Впервые технология Hyper-Threading (HT, гиперпоточность) появилась 15 лет назад — в 2002 году, в процессорах Pentium 4 и Xeon, и с тех пор то появлялась в процессорах Intel (в линейке Core i, некоторых Atom, в последнее время еще и в Pentium), то исчезала (ее поддержки не было в линейках Core 2 Duo и Quad). И за это время она обросла мифическими свойствами — дескать ее наличие чуть ли не удваивает производительность процессора, превращая слабые i3 в мощные i5. При этом другие говорят что HT — обычная маркетинговая уловка, и толку от нее мало. Правда как обычно по середине — местами толк от нее есть, но двухкртаного прироста ждать точно не стоит.

Техническое описание технологии

Начнем с определения, данного на сайте Intel:

Технология Intel® Hyper-Threading (Intel® HT) обеспечивает более эффективное использование ресурсов процессора, позволяя выполнять несколько потоков на каждом ядре. В отношении производительности эта технология повышает пропускную способность процессоров, улучшая общее быстродействие многопоточных приложений.

В общем понятно то, что ничего не понятно — одни общие фразы, однако вкраце технологию они описывают — HT позволяет одному физическому ядру обрабатывать одновременно несколько (обычно два) логических потока. Но как? Процессор, поддерживающий гиперпоточность:

Разберем на простом примере:


Как работает хайпер

Допустим перед процессором стоят две задачи. Если процессор имеет одно ядро, то он будет выполнять их последовательно, если два — то параллельно на двух ядрах, и время выполнения обеих задач будет равно времени, затраченному на более тяжелую задачу. Но что если процессор одноядерный, но поддерживает гиперпоточность? Как видно на картинке выше при выполнении одной задачи процессор не занят на 100% — какие-то блоки процессора банально не нужны в данной задаче, где-то ошибается модуль предсказания переходов (который нужен для предсказания, будет ли выполнен условный переход в программе), где-то происходит ошибка обращения к кэшу — в общем и целом при выполнении задачи процессор редко бывает занят больше, чем на 70%. А технология HT как раз «подпихивает» незанятым блокам процессора вторую задачу, и получается что одновременно на одном ядре обрабатываются две задачи. Однако удвоения производительности не происходит по понятным причинам — очень часто получается так, что двум задачам нужен один и тот же вычислительный блок в процессоре, и тогда мы видим простой: пока одна задача обрабатывается, выполнение второй на это время просто останавливается (синие квадраты — первая задача, зеленые — вторая, красные — обращение задач к одному и тому же блоку в процессоре):

В итоге время, затраченное процессором с HT на две задачи, оказывается больше времени, требуемого на вычисление самой тяжелой задачи, но меньше того времени, которое нужно для последовательного вычисления обеих задач.

Плюсы и минусы технологии

С учетом того, что кристалл процессора с поддержкой HT физчески больше кристалла процессора без HT в среднем на 5% (именно столько занимают дополнительные блоки регистров и контроллеры прерываний), а поддержка HT позволяет нагрузить процессор на 90-95%, то в сравнении с 70% без HT мы получаем, что прирост в лучшем случае будет 20-30% — цифра достаточно большая.

Однако не все так хорошо: бывает, что прироста производительности от HT нет вообще, и даже бывает так, что HT ухудшает производительность процессора. Это бывает по многим причинам:

Программы, умеющие работать с гиперпоточностью

Таких много, ибо для вычислений HT это манна небесная — тепловыделение практически не растет, процессор особо больше не становится, а при правильной оптимизации можно получить прирост до 30%. Поэтому ее поддержку быстро внедрили в те программы, где легко можно сделать распараллеливание нагрузки — в архиваторы (WinRar), программы для 2D/3D моделирования (3ds Max, Maya), программы для обрабокти фото и видео (Sony Vegas, Photoshop, Corel Draw).

Читайте также:  О нас — Джино

Программы, плохо работающие с гиперпоточностью

Традиционно это большинство игр — их обычно бывает трудно грамотно распараллелить, поэтому зачастую четырех физических ядер на высоких частотах (i5 K-серии) более чем хватает для игр, распараллелить которые под 8 логических ядер в i7 оказывается непосильной задачей. Однако стоит учитывать и то, что есть фоновые процессы, и если процессор не поддерживает HT, то их обработка ложится на физические ядра, что может замедлить игру. Тут i7 с HT оказывается в выигрыше — все фоновые задачи традиционно имеют пониженный приоритет, поэтому при одновременной работе на одном физическом ядре игры и фоновой задаче игра будет получать повышенный приоритет, и при этом фоновая задача не будет «отвлекать» занятые игрой ядра — именно поэтому для стриминга или записи игр лучше брать i7 с гиперпоточностью.

Итоги

Пожалуй тут остается только один вопрос — так имеет ли смысл брать процессоры с HT или нет? Если вы любите держать одновременно открытыми пяток программ и при этом играть в игры, или же занимаетесь обработкой фото, видео или моделированием — да, разумеется стоит брать. А если вы привыкли перед запуском тяжелой программы закрывать все другие, и не балуетесь обработкой или моделированием, то процессор с HT вам ни к чему.

Для начала сформулируем, что же именно мы знаем про технологию Hyper Threading:

1. Данная технология предназначена для увеличения эффективности работы процессора. Дело в том, что, по оценкам Intel, большую часть времени работает всего 30% (кстати, достаточно спорная цифра — подробности ее вычисления неизвестны) всех исполнительных устройств в процессоре. Согласитесь, это достаточно обидно. И то, что возникла идея каким-то образом «догрузить» остальные 70% — выглядит вполне логично (тем более что сам по себе процессор Pentium 4, в котором и внедрят эту технологию, отнюдь не страдает от избыточной производительности на мегагерц). Так что эту идею автор вынужден признать вполне здравой.

2. Суть технологии Hyper Threading состоит в том, что во время исполнения одной «нити» программы простаивающие исполнительные устройства могут заняться исполнением другой «нити» программы (или «нити» другой программы). Или, например, исполняя одну последовательность команд, ожидать данных из памяти для исполнения другой последовательности.

3. Естественно, выполняя различные «нити», процессор должен каким-либо образом отличать, какие команды к какой «нити» относятся. Значит, есть какой-то механизм (некая метка), благодаря которой процессор отличает, к какой «нити» относятся команды.

5. Также известно, что в случае, когда несколько «нитей» претендуют на одни и те же ресурсы, либо одна из «нитей» ждет данных — во избежание падения производительности программисту необходимо вставлять специальную команду — «pause». Естественно, это потребует очередной перекомпиляции программ.

6. Также понятно, что возможны ситуации, когда попытки одновременного исполнения нескольких «нитей» приведут к падению производительности. Например, из-за того, что размер кэша L2 не бесконечный, а активные «нити» будут пытаться загрузить кэш — возможна ситуация, когда такая «борьба за кэш» приведет к постоянной очистке и перезагрузке данных в кэше второго уровня.

Ну что же, некоторые особенности мы сформулировали. Теперь давайте попробуем обдумать некоторые следствия (по возможности опираясь на известные нам сведения). Что же можно сказать? Ну, во-первых, необходимо тщательнее разобраться, что же именно нам предлагают. Так ли «бесплатен» этот сыр? Для начала разберемся, как именно будет происходить «одновременная» обработка нескольких «нитей». Кстати, что подразумевает корпорация Intel под словом «нить»?

У автора сложилось впечатление (возможно, ошибочное), что в данном случае имеется ввиду программный фрагмент, который мультизадачная операционная система назначает на исполнение одному из процессоров мультипроцессорной аппаратной системы. » Постойте!» — заявит внимательный читатель — «это же одно из определений! Что тут нового?». А ничего — в данном вопросе автор на оригинальность не претендует. Разобраться бы, что «наоригинальничала» Intel :-). Ну что же — примем в качестве рабочей гипотезы.

Далее — исполняется некоторая нить. Тем временем декодер команд (кстати, полностью асинхронный и не входящий в пресловутые 20 стадий Net Burst) осуществляет выборку и дешифрацию (со всеми взаимозависимостями) в микроинструкции. Здесь надо пояснить, что автор подразумевает под словом «асинхронный» — дело в том, что результат «разваливания» х86 команд в микроинструкции происходит в блоке дешифрации. Каждая команда х86 может быть декодирована в одну, две, или более микроинструкций. При этом на стадии обработки выясняются взаимозависимости, доставляются необходимые данные по системной шине. Соответственно, скорость работы этого блока часто будет зависеть от скорости доступа данных из памяти — и в худшем случае определяется именно ею. Было бы логично «отвязать» его от того конвейера, в котором, собственно, и происходит выполнение микроопераций. Это было сделано путем помещения блока дешифрации перед trace cache. Чего мы этим добиваемся? А добиваемся мы при помощи такой «перестановки блоков» местами простой вещи — если в trace cache есть микроинструкции для исполнения — процессор работает более эффективно. Естественно, этот блок работает на частоте процессора — в отличие от Rapid Engine. Кстати, у автора сложилось впечатление, что данный декодер представляет собой нечто вроде конвейера длиной до 10–15 стадий. Таким образом, от выборки данных из кэша до получения результата проходит, по всей видимости, порядка 30 — 35 стадий (включая конвейер Net Burst, см. Microdesign Resources August2000 Microprocessor report Volume14 Archive8, page12).

Читайте также:  Проблема с сертификатом безопасности веб-сайта

Кстати, в интернет проскакивала информация о том, что ALU в Pentium 4 16 разрядные. Сначала автор относился к подобной информации весьма скептически — дескать, чего завистники удумали :-). А потом публикация подобной информации в Micro Design Report заставила таки задуматься — а вдруг правда? И, хотя информация об этом к теме статьи прямого отношения не имеет — трудно удержаться :-). Насколько автору «хватило понимания», суть в том, что ALU действительно 16-разрядный. Подчеркиваю — только ALU. К разрядности самого процессора это отношения не имеет. Таким образом, за полтакта (это называется тик, tick) ALU (удвоенной частоты, как Вы помните) вычисляет только 16 разрядов. Вторые 16 вычисляются за следующие полтакта. Отсюда, кстати, легко понятна необходимость сделать ALU вдвое быстрее — это необходимо для своевременного «перемалывания» данных. Таким образом, полных 32 разряда вычисляются за полный такт. На самом деле, по-видимому, необходимы 2 такта из-за необходимости «склеивать» и «расклеивать» разряды — но этот вопрос необходимо уточнить. Собственно, раскопки (про которые можно написать отдельную поэму) дали следующее: каждое ALU поделено на 2 16-разрядные половинки. Первые полтакта первая половинка обрабатывает 16 разрядов двух чисел и формируют биты переносов для вторых половинок. Вторая половинка в это время заканчивает обработку предыдущих чисел. Второй тик — первая половинка ALU обрабатывает 16 разрядов от следующей пары чисел и формирует их переносы. Вторая половинка обрабатывает старшие 16 разрядов первой пары чисел и получает готовый 32-разрядный результат. Задержка получения 1 результата — 1 такт, но потом каждые полтакта вылезает по 1 32-разрядному результату. Достаточно остроумно и эффективно. Почему же была выбрана именно такая модель ALU? По видимому, подобной организацией Intel убивает несколько «зайцев»:

1. Ясно, что конвейер «шириной» 16 разрядов разгонять легче, чем шириной 32 разряда — просто по причине наличия перекрестных помех и Ко

2. По-видимому, Интел счел операции целочисленного вычисления достаточно часто встречающимися, чтобы ускорять именно ALU, а не, скажем, FPU. Вероятно, при вычислении результатов целочисленных операций используются либо таблицы, либо схемы «с накоплением переноса». Для сравнения, одна 32-битная таблица это 2E32 адресов, т.е. 4гигабайта. Две 16-разрядные таблицы это 2х64кб или 128 килобайт — почувствуйте разницу! Да и накопление переносов в двух 16-разрядных порциях происходит быстрее, чем в одной 32-разрядной.

Ну что же — не забываем достаточно важный вывод: применение Hyper Threading способно привести как к выигрышу, так и к проигрышу в производительности. Ну а поскольку проигрыш нами уже обсужден — попробуем понять, что же необходимо для выигрыша: а для выигрыша необходимо, чтобы об этой технологии знали:

Вот на этом моменте позвольте остановиться поподробнее — дело в том, что за BIOS дело не станет. Операционную систему мы обсудили чуть ранее. А вот в те нити, которые, например, ожидают данных из памяти — придется вводить специальную команду pause, чтобы не замедлять работу процессора; ведь при отсутствии данных нить способна блокировать те или иные исполнительные устройства. А чтобы вставить эту команду, приложения придется перекомпилировать — это не есть хорошо, но, с легкой руки Intel, к этому в последнее время все стали привыкать :-). Таким образом, основной (по мнению автора) недостаток технологии Hyper Threading — это необходимость очередной компиляции. Основное преимущество такого подхода — подобная перекомпиляция попутно (и, скорее всего, более заметно 🙂 подымет производительность в «честных» двухпроцессорных системах — а это можно только приветствовать. Кстати, уже есть экспериментальные данные, которые подтверждают, что в большинстве случаев программы, оптимизированные под SMP, выигрывают от Hyper Threading от 15% до 18%. Это весьма неплохо. Кстати, там же можно увидеть, в каких случаях Hyper Threading приводит к падению производительности.

Вместо послесловия

Автор должен признаться, что в течение работы над статьей его отношение к Hyper Threading неоднократно менялось. По мере того, как собиралась и обрабатывалась информация — отношение становилось то в целом положительным, то наоборот :-). На сегодняшний момент можно написать следующее:

есть только два способа повышать производительность — повышать частоту, и повышать производительность за такт. И, если вся архитектура Pentium4 рассчитана на первый путь, то Hyper Threading — как раз второй. Уже с этой точки зрения ее можно только приветствовать. Так же Hyper Threading несет несколько интересных следствий, как-то: изменение парадигмы программирования, привнесение многопроцессорности в массы, увеличение производительности процессоров. Однако, на этом пути есть несколько «больших кочек», на которых важно не «застрять»: отсутствие нормальной поддержки со стороны операционных систем и, самое главное, необходимость перекомпиляции (а в некоторых случаях и смены алгоритма) приложений, чтобы они в полной мере смогли воспользоваться преимуществами Hyper Threading. К тому же, наличие Hyper Threading сделало бы возможной действительно параллельную работу операционной системы и приложений — а не «кусками» по очереди, как сейчас. Конечно, при условии, что хватит свободных исполнительных устройств.

Читайте также:  Как скопировать содержимое из cmd в текстовый файл ОС?

Автор хотел подчеркнуть бы свою признательность Максиму Леню (aka C. A. R. C. A. S. S.) и Илье Вайцману (aka Stranger_NN) за неоднократную и неоценимую помощь при написании статьи. Также хотелось бы сказать спасибо всем участникам форума, которые неоднократно высказывали ценные замечания.

Как пользоваться Hyper-V?

Для примера будем запускать Windows 7 Pro 64-bit из установочного ISO-образа. Для начала нужно создать и настроить виртуальную машину:


Как работает хайпер

Как работает хайпер

Как работает хайпер

Как работает хайпер

Как работает хайпер

Как работает хайпер

Как работает хайпер

Как работает хайпер

Как работает хайпер

Как работает хайпер

Для запуска только что созданной виртуальной машины вернитесь в окно Диспетчер Hyper-V, кликните правой кнопкой мыши по имени виртуальной машины и выберите пункт Пуск из контекстного меню:


Как работает хайпер

Как работает хайпер

Зато так мы быстро выяснили, что виртуальная машина работает. Теперь установим в нее операционную систему:


Как работает хайпер

Как работает хайпер

Как работает хайпер

Теперь подключим нашу виртуальную ОС к интернету. Для этого:


Как работает хайпер

Как работает хайпер

Подробнее о технологии Hyper-V

Платформа аппаратной виртуализации Hyper-V обеспечивает эффективную работу сразу нескольких операционных систем Windows или Linux на основе одного компьютера или хостинга.

Разработана эта технология корпорацией Microsoft, под нынешним названием впервые была выпущена 26 июня 2008 года. Если быть точнее, первый релиз состоялся в 2004 году, только называлась технология Virtual Server. В дальнейшем она стала выпускаться как дополнительный компонент новой операционной системы Windows.

Чаще всего данная технология используется для следующих целей:

Если сравнивать с физическим сервером

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

Если ваш сайт действительно хорошо настроен, на базе VDS он будет функционировать ничуть не хуже, чем на физическом сервере. Качество, скорость и надежность не будут снижены.

VPS работает на базе технологии виртуализации и ничем не отличается от обычного сервера. На него точно так же можно установить любую систему. Разница состоит лишь в том, что версия серверная. Чаще всего люди выбирают ОС Windows и дистрибутивы Linux, такие как Debian, Ubuntu и CentOS.

Подобный вариант выбирают, когда ресурсов виртуального хостинга не хватает, а платить еще больше – не вариант. V DS с этой платформой выигрывает еще из-за высокого уровня безопасности размещаемых проектов.

Эта ВМ позволяют нескольким системам работать обособленно, не влиять друг на друга. Ограничения, конечно, есть, но они устанавливаются изначально, при выставлении подходящих параметров. И то эти значения можно увеличить или уменьшить в любой момент, просто поменяв конфигурацию на сайте хостинга.

Именно благодаря виртуальным машинам люди могут арендовать лишь часть сервера и отдавать при этом гораздо меньше денег.

1000 рублей в подарок на производительные VDS от Timeweb

Закажи VDS, пополни баланс на 1000 рублей, и мы добавим еще столько же. Активируй промокод community1000 в панели управления.

Заказать
Условия использования промокода

Работа через PowerShell

Еще одно положительное качество гипервизора – эффективная работа и настройка VDS с помощью инструмента Windows PowerShell. Именно он позволяет автоматизировать множество задач, развернуть кластер Hyper-V Cluste с высокой отказоустойчивостью, а также многое другое. И при выполнении всех этих операций используется лишь командная строка, просто надо подобрать подходящий запрос для конкретного действия.

Требования для запуска Hyper-V

Для возможности развертывания Hyper-V компьютер и хост-система должны соответствовать следующим требованиям:


Как работает хайпер

Как работает хайпер

Как работает хайпер

Как работает хайпер

Теперь активируем систему виртуализации.

Сравнение с другими гипервизорами

Основные преимущества и недостатки среды мы рассмотрели. Теперь хотелось бы сравнить ее с альтернативными вариантами, то бишь виртуальными машинами других производителей.

VMWare

На основе многочисленных результатов данная виртуальная машина является главным конкурентом Hyper-V. Именно VMWare имеет превосходство в плане производительности, но самым большим ее плюсом является независимость. Если говорить точнее – для настройки всех компонентов виртуальной машины VMWare необязательно устанавливать какую-то ОС. В то же время продукт уступает конкуренту, то есть Hyper-V, по показателю масштабируемости.

OpenVZ

Единственный минус технологии виртуализации OVZ состоит в том, что она поддерживает работу только дистрибутивов на базе Linux. Но в то же время OpenVZ обгоняет Хайпер-В в легкости администрирования и стоимости предоставляемых услуг.

XEN

XEN – очень хороший программный продукт с открытым исходным кодом, но куда менее популярный. Данный вариант обладает повышенным уровнем безопасности, но в то же время интерфейс его не так удобен, как в случае с продуктом корпорации Microsoft.

KVM

Аббревиатура KVM расшифровывается как Kernel-based Virtual Machine. Изначально разработана компанией Red Hat. Для установки требуется x86-совместимый процессор, поддерживающий аппаратную виртуализацию на основе Intel VT или AMD SVM.

На данный момент ВМ поддерживает запуск 32 и 64-битных ОС Linux и Windows. KVM имеет открытый исходный код, он бесплатен и пользуется на рынке большим спросом. Хотя считается, что Hyper-V является более надежным вариантом.

Как включить Hyper-V?

Механизм Hyper-V является одним из системных компонентов Windows. По умолчанию он выключен. Для его активации:


Как работает хайпер

Как работает хайпер

Как работает хайпер

Как работает хайпер

Также Hyper-V можно активировать из командной строки:


Как работает хайпер

После активации системы виртуализации Hyper-V можно приступать к развертыванию в ней операционной системы.

Плюсы Hyper-V на серверах VDS

Гипервизор также имеет ряд недостатков, в числе которых:

Заключение

Мы рассмотрели основные преимущества Hyper-V и сравнили ее с другими система виртуализации. Как можно увидеть, у всех машин свои плюсы и минусы. Выбор за вами!

Оцените статью
Хостинги