Управление ресурсами процессора в гостевых системах Hyper-V

Опубликовано: 23 Апреля, 2023


Введение в виртуальные процессоры


Windows Server 2008 Hyper-V позволяет использовать до четырех виртуальных процессоров на виртуальной машине и позволяет настраивать параметры балансировки этих виртуальных процессоров между виртуальными машинами. В этой статье описываются параметры управления ресурсами процессора и способы их использования.



Hyper-V использует физические процессоры и ядра для предоставления виртуальных процессоров виртуальным машинам. Каждая виртуальная машина начинается с одного виртуального процессора, но вы можете увеличить количество виртуальных процессоров до 2 или 4 на виртуальную машину. Виртуальные процессоры на самом деле представляют собой потоки в родительском разделе, работающие на физическом процессоре. При включении каждой виртуальной машины для каждого виртуального процессора в виртуальной машине создается отдельный поток. Диспетчер виртуальных машин (VMM) может планировать каждый поток на отдельном физическом ядре или процессоре.


Настройка количества процессоров в виртуальной машине осуществляется из диалогового окна настроек виртуальной машины. Хотя вы можете просмотреть количество виртуальных процессоров во время работы виртуальной машины, вы не можете изменить количество доступных процессоров, пока виртуальная машина не будет отключена. На рис. 1 показано диалоговое окно настроек с выбранным аппаратным узлом «Процессор», вы можете видеть, что в правой части есть возможность выбрать количество процессоров, в этом случае доступны 1 или 2 процессора. Это определяется количеством ядер, доступных в родительском разделе. Чтобы иметь возможность выбрать 4 процессора в виртуальной машине, родительский раздел должен иметь 4 ядра (или 4 процессора, если не несколько ядер).


Изображение 28282
фигура 1


Контроль ресурсов


Виртуализация позволяет превысить лимиты обработки физического оборудования. Я мог бы иметь только 4 ядра на физическом сервере, но создать и запустить более 4 виртуальных машин. Каждая виртуальная машина будет совместно использовать виртуальный процессор в родительском разделе, но без каких-либо ограничений виртуальная машина может использовать все ядро в машине. Например, если я выделяю виртуальной машине 1 процессор на машине с одним четырехъядерным процессором, эта виртуальная машина будет иметь один поток, который может потреблять эквивалент всего ядра или времени обработки. Если у него настроено 2 процессора, он может потреблять два ядра. Если вы настроите виртуальную машину на 4 ядра, она может попытаться потреблять всю вычислительную мощность сервера и лишить другие виртуальные машины голода.


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


Hyper-V осуществляет управление ресурсами различными способами:




  1. Установка резерва на обработку ресурсов в процентах


  2. Установка максимума на обработку ресурсов в процентах


  3. Установка относительного веса виртуальной машины по отношению к другим в системе

Резерв виртуальной машины


Резерв виртуальной машины позволяет указать процент назначенного виртуального процессора, который эта виртуальная машина будет гарантировать на физическом хосте. Это значение может находиться в диапазоне от 1 до 100 % и зависит от количества процессоров, назначенных виртуальной машине. Например, если физический хост имеет 4 ядра, и вы назначаете один процессор виртуальной машине, эта виртуальная машина потенциально может потреблять до всего ядра процессора времени обработки, но не гарантируется, что время обработки вообще доступно. раз.


При установке значения резерва на 100 % виртуальная машина будет зарезервирована в эквиваленте всего ядра процессора. Если эта виртуальная машина большую часть времени бездействует на 10 %, остальные 90 % времени обработки по-прежнему недоступны для любой другой виртуальной машины. Использование резервного управления ресурсами ограничит количество доступных ресурсов виртуального процессора, которые могут совместно использоваться на узле Hyper-V, и, следовательно, ограничит количество одновременных виртуальных машин, которые вы можете включить. Если у вас есть 20 виртуальных машин, настроенных с одним процессором на хосте с 4 ядрами, и для каждой из них установлен резерв 100%, вы можете включить только 4 виртуальные машины.


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


Ограничение виртуальной машины


Ограничения виртуальной машины противоположны резерву виртуальной машины, они позволяют указать максимальный объем вычислительной мощности, которую может потреблять виртуальная машина. Это значение может находиться в диапазоне от 100 до 1 % и зависит от количества процессоров, назначенных виртуальной машине. Например, если физический хост имеет 4 ядра и вы назначаете один процессор виртуальной машине, эта виртуальная машина потенциально может потреблять до всего ядра процессора времени обработки, но ограничений нет, поэтому виртуальная машина может потреблять цельное ядро. Установив предельное значение на 10 %, эта виртуальная машина будет ограничена максимум 10 % всего ядра процессора.


Если эта виртуальная машина имеет всплеск обработки, она будет ограничена не более чем 10% ядра и, следовательно, пострадает в производительности. Использование управления ограничением ресурсов ограничит количество доступных ресурсов виртуального процессора, которые могут потребляться на узле Hyper-V, и позволит вам контролировать количество одновременных виртуальных машин, которые вы можете включать, и иметь определенные объемы вычислительной мощности для каждой виртуальной машины. Если у вас есть 20 виртуальных машин, настроенных с одним процессором на хосте с 4 ядрами, и для каждой из них установлено ограничение в 10 %, вы потребляете только эквивалент двух ядер процессора и все еще можете включить еще 20 виртуальных машин. (при условии, что у вас достаточно памяти и дисковых ресурсов). Это также означает, что если вы включите только одну виртуальную машину, она никогда не сможет потреблять более 10% ресурсов одного ядра, поэтому вы ограничиваете производительность виртуальной машины, даже если у вас есть избыточная вычислительная мощность.


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


Относительный вес


Относительный вес позволяет указать, что виртуальная машина имеет приоритет обработки без применения определенного ограничения или резерва. Это значение может находиться в диапазоне от 0 до 10000. Относительный вес используется для определения того, кто должен получить ресурсы обработки, когда одновременно делается несколько запросов. Например, по умолчанию, если у вас запущены 4 виртуальные машины, все 4 получат равное распределение доступной вычислительной мощности, поскольку все они имеют одинаковый относительный вес. Если у вас есть машина, которая более важна, чем другие, и вы хотите дать этой виртуальной машине запрос на вычислительную мощность, приоритет над другими, вы можете назначить этой виртуальной машине более высокий вес, чем другим виртуальным машинам. Это означает, что если виртуальной машине с большим весом нужны ресурсы, она их получает, но если она их не использует, их могут использовать другие виртуальные машины. Все это по-прежнему ограничено количеством процессоров, назначенных виртуальной машине. Если вы назначите виртуальной машине один виртуальный процессор и большой относительный вес, она все равно сможет потреблять максимум одно ядро.


Вывод


Hyper-V по умолчанию предоставляет всем виртуальным машинам равный приоритет и доступ к ресурсам. У вас могут возникнуть ситуации, когда вы хотите гарантировать, что виртуальная машина всегда имеет определенный объем вычислительной мощности, когда вы хотите быть уверены, что виртуальная машина никогда не может потреблять больше, чем определенный процент вычислительной мощности, или что вы хотите, чтобы он по умолчанию балансировал мощность, за исключением пикового времени обработки, а затем давал конкретной виртуальной машине больший приоритет обработки. Hyper-V дает вам возможность гибко выбирать метод управления ресурсами для каждой виртуальной машины.