Управление ресурсами ЦП для виртуальных машин Hyper-V
Хитрость эффективного управления любой виртуализированной средой заключается в контроле конкуренции за ресурсы. Конкуренцию за ресурсы можно определить как конкуренцию между виртуальными машинами за аппаратные ресурсы. Идея заключается в том, что любой хост виртуализации содержит ограниченное количество аппаратных ресурсов (таких как циклы ЦП и память), и эти ресурсы должны быть разделены между всеми работающими виртуальными машинами. Конкуренция за ресурсы не является проблемой, если хост-сервер имеет достаточно аппаратных ресурсов для комфортного запуска всех размещенных на нем виртуальных машин. По мере увеличения рабочих нагрузок виртуальных машин конфликт ресурсов может быстро стать проблемой. Обычно не хватает одного конкретного ресурса, что ограничивает общее количество виртуальных машин, которые может запустить узел. IOPS хранилища, вероятно, является ресурсом, которого чаще всего не хватает, но я также видел много реальных хостов виртуализации, которые страдают от нехватки памяти.
Виртуальные машины, конкуренция за ресурсы и циклы ЦП
Одним из ресурсов, который редко обсуждается в связи с конфликтом ресурсов, являются циклы ЦП. Причина этого очень проста. Современные ЦП чрезвычайно эффективны, а узлы виртуализации обычно оснащены несколькими ЦП. Таким образом, узлы виртуализации обычно начинают испытывать недостаток циклов ЦП только в том случае, если виртуальные машины выполняют несколько рабочих нагрузок с интенсивным использованием ЦП.
Несмотря на то, что хост с ограниченным ЦП встречается несколько реже по сравнению с хостом, страдающим от нехватки памяти, операций ввода-вывода в секунду или пропускной способности сети, такое случается. Организации должны подумать, что они могут сделать, чтобы наилучшим образом использовать доступные ресурсы ЦП. В то же время для виртуальной машины, на которой выполняется рабочая нагрузка с интенсивным использованием ЦП, может потребоваться выделение ресурсов ЦП, которые не может использовать другая виртуальная машина. К счастью, Hyper-V позволяет вам делать и то, и другое.
Чтобы получить доступ к настройкам ЦП Hyper-V в диспетчере виртуальных машин System Center, перейдите в рабочую область «ВМ и службы», выберите группу хостов, а затем щелкните правой кнопкой мыши виртуальную машину, параметры ЦП которой вы хотите проверить. Выберите команду «Свойства» в появившемся контекстном меню, и отобразятся настройки виртуальной машины.
Если ваша цель — ограничить использование ЦП, то первое, на что вам следует обратить внимание, — это параметр «Процессор», который можно найти на вкладке «Конфигурация оборудования». Как вы можете видеть на изображении ниже, раздел «Процессор» позволяет указать количество процессоров, выделенных для виртуальной машины.
Теперь прокрутите вниз, пока не найдете раздел «Приоритет ЦП». Как вы можете видеть на следующем изображении, этот экран позволяет назначить приоритет виртуальной машине, когда Hyper-V выделяет ресурсы ЦП. Другими словами, если в Hyper-V недостаточно ресурсов ЦП, виртуальные машины с более высоким приоритетом получат циклы ЦП раньше, чем виртуальные машины с более низким приоритетом.
Установка приоритета виртуальной машины
Вы можете установить приоритет виртуальной машины, выбрав кнопки Высокий, Низкий или Нормальный. Вы также можете установить пользовательский приоритет, если хотите. Как вы можете видеть на скриншоте, у вас также есть возможность установить собственный приоритет. Если вы решите создать собственный приоритет, вам нужно будет ввести число от 1 до 1000. Более высокие значения соответствуют более высоким приоритетам. Кстати, нормальному приоритету соответствует значение 100, тогда как низкоприоритетной машине присваивается значение 50. Высокоприоритетной виртуальной машине присваивается значение 200.
Прямо под элементами управления приоритетами вы найдете раздел «Управление ресурсами». Первый параметр, найденный в этом разделе, — это параметр «Резервные циклы ЦП (%). Как следует из названия, этот параметр используется для резервирования ресурсов ЦП для виртуальной машины. Число, которое вы вводите здесь, по существу представляет собой процент от одного логического процессора. Если, например, вы введете число 25, то вы резервируете 25 процентов мощности одного логического процессора для виртуальной машины. По умолчанию этот параметр установлен на ноль, что означает, что резервирование не существует, если вы его не создадите. Обычно резервирование ЦП требуется только в том случае, если виртуальная машина выполняет рабочую нагрузку с интенсивным использованием ЦП, и вы пытаетесь гарантировать, что достаточные ресурсы ЦП доступны для виртуальной машины в любое время.
В разделе «Управление ресурсами» также указан процент общих системных ресурсов, зарезервированных для виртуальной машины. Другими словами, если виртуальной машине было выделено большое количество виртуальных процессоров и зарезервирован цикл ЦП, то это число будет отражать общий процент общей вычислительной мощности хост-машины, зарезервированной для виртуальной машины.
Другой параметр в разделе «Управление ресурсами» — это параметр «Ограничение циклов ЦП (%). Этот параметр действует прямо противоположно параметру «Резервные циклы ЦП». В то время как параметр «Резервировать циклы ЦП» резервирует ресурсы ЦП для использования виртуальной машиной, параметр «Ограничить циклы ЦП» действует как барьер, не позволяющий виртуальной машине потреблять чрезмерное количество ресурсов ЦП. По умолчанию для этого параметра установлено значение 100 процентов, что означает отсутствие ограничений на общий объем ресурсов, которые может потреблять виртуальная машина.
Прямо под настройкой Limit CPU Cycles вы увидите процент общих системных ресурсов, которым ограничена виртуальная машина. Этот параметр отражает общий процент вычислительной мощности хост-сервера, к которому может получить доступ виртуальная машина, исходя из количества выделенных ей логических процессоров и любых введенных ограничений.
Ограничьте или зарезервируйте ресурсы ЦП
Как видите, Hyper-V позволяет либо ограничить ресурсы ЦП виртуальной машины, либо зарезервировать ресурсы ЦП для использования виртуальной машиной. Хотя я использовал диспетчер виртуальных машин System Center для демонстрации существующих параметров конфигурации, те же параметры доступны и в диспетчере Hyper-V. Вы можете получить к ним доступ, щелкнув правой кнопкой мыши виртуальную машину и выбрав «Настройки» в появившемся контекстном меню. Когда появится окно настроек виртуальной машины, просто выберите вкладку «Процессор», чтобы получить доступ к настройкам. Вы можете увидеть, как это выглядит ниже.