Перейти к содержанию

Процессоры

Информация

Вкладка Процессоры отвечает за конфигурацию (архитектуру) процессора ВМ и содержит:

  • количество сокетов;

  • количество ядер на сокет;

  • количество потоков на ядро;

  • общее количество потоков;

  • максимальное количество потоков;

  • режим определения;

  • модель;

  • приоритет загрузки vCPU процессами ВМ;

  • кол-во минимально гарантированных vCPU;

  • приоритет виртуальных процессоров (vCPU);

  • дополнительные функции vCPU.

Настройка процессоров

Настройку процессоров можно выполнить с помощью кнопки Настройки, которая при открытии окна Настройки процессоров позволяет изменить следующие параметры:

  • количество vCPU и максимальное количество vCPU. При нажатии кнопки Количество в открывшемся окне необходимо указать количество и максимальное количество процессоров, после чего подтвердить операцию, нажав кнопку OK;

  • топология процессоров. При нажатии кнопки Топология в открывшемся окне необходимо задать количество советов, ядер на сокет и потоков, после чего подтвердить операцию, нажав кнопку OK;

  • модель процессора. При нажатии кнопки Модель необходимо выбрать из раскрывающегося списка режим определения процессора, после чего подтвердить операцию, нажав кнопку OK;

  • привязка виртуальных процессоров к физическим ядрам. При нажатии кнопки Привязка в открывшемся окне необходимо заполнить привязку процессоров ВМ к физическим, после чего подтвердить операцию, нажав кнопку OK;

  • приоритеты выделения процессорного времени ВМ. При нажатии кнопки Приоритет в открывшемся окне необходимо выбрать из раскрывающегося списка базовый приоритет процессора, детальный приоритет процессора, гарантированное количество vCPU, после чего подтвердить операцию, нажав кнопку Сохранить;

  • дополнительные функции vCPU. При нажатии кнопки Дополнительные функции vCPU в открывшемся окне необходимо указать дополнительные функции (флаги), после чего подтвердить операцию, нажав кнопку Сохранить.

Горячее добавление vCPU

Параметр "Максимальное количество vCPU" рекомендуется ставить больше при планировании в дальнейшем увеличивать кол-во vCPU при включенной ВМ. При изменении максимального количества vCPU топология подстраивается под этот параметр, то есть включенная ВМ видит именно максимальное количество vCPU, но при этом только на указанном количестве vCPU подключается питание, а остальные vCPU видятся неактивными (без питания).

Топология процессора

Изменение топологии процессора предназначено для удовлетворения требований ОС ВМ. Некоторые ОС не умеют работать с многоядерными процессорами, некоторые ограничивают количество сокетов CPU, а некоторые ОС ограничивают количество ядер на сокет.

Модель процессора

Модель процессора может влиять на функциональность ОС ВМ и на возможность миграции ВМ внутри кластера.

Доступные функции узла можно посмотреть во вкладке узла "Оборудование"-"Процессоры".

Модель (архитектура) CPU виртуальной машины может быть:

  • default - назначаются виртуальные процессоры. Если ОС ВМ чувствительна к набору инструкций центрального процессора, то использование виртуальных процессоров может не удовлетворять требованиям ОС ВМ. Доступные функции берутся из модели процессора qemu64;

  • host-model - модель, аналогичная физическому, с незначительными ограничениями. Доступные функции берутся из узла, где находится ВМ;

  • host-passthrough - фактическая трансляция полного комплекта инструкций и модели физического процессора. Доступные функции берутся из узла, где находится ВМ;

  • custom - выбор модели процессора из списка. Необходимо учитывать предоставляемые наборы инструкций выбираемой модели и ограничения для ОС ВМ перед сменой типа процессора на custom. Доступные функции берутся из известного набора инструкций для каждого процессора, определённого в гипервизоре.

Привязка процессоров ВМ к физическим ядрам

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

Приоритет выделения процессорного времени

Приоритет выделения процессорного времени ВМ может понизить или повысить приоритет выделения ресурсов для ВМ.

Есть 2 параметра приоритета процессорного времени ВМ: cpu_priority (LOW, MEDIUM, HIGH) и cpu_shares (от 2 до 10000 (макс. ВМ на кластер)).

По-умолчанию приоритет (cpu_priority) у ВМ средний (MEDIUM), что означает, что через nice на каждый процесс ВМ на узле ставится приоритет 10. Низкий (LOW) приоритет соответствует 19, Низкий (HIGH) приоритет соответствует 1.

По-умолчанию приоритет (cpu_shares) у всех ВМ 1024, что означает, что гипервизор считает ВМ одинаково приоритетными. Изменение cpu_shares от 2 до 10000 позволяет изменить относительную приоритезацию процессорного времени ВМ относительно других ВМ. Настраиваемый параметр cpu_shares учитывается для ВМ в целом, при этом количество vCPU не учитывается. Таким образом, стоит увеличить cpu_shares по мере увеличения количества vCPU.

Стоит обратить внимание, что это относительная расстановка приоритетов, а не абсолютная мера времени. Как таковая, приоритезация действительно вступает в силу только в том случае, если перегружены процессоры узла, так что vCPU от разных ВМ конкурируют друг с другом за процессорное время узла. Таким образом, изменение cpu_shares не даёт N единиц процессорного времени. То есть в периоды, когда 2 ВМ нуждаются в процессорном времени, а свободного времени недостаточно для удовлетворения обоих, доступное свободное процессорное время будет выделено ВМ, соответствующим соотношению общих ресурсов.

vNUMA

На данный момент по умолчанию у ВМ есть всегда только один vNUMA узел, к которому относятся все vCPU. Сделано так для того, чтобы можно было на лету добавлять планки оперативной памяти и дополнительные vCPU.

Пример одной vNUMA в ВМ с 8 vCPU:

image

При включении настройки трансляции топологии vNuma (Настройки контроллера), если у ВМ максимальное количество vCPU больше 8, то количество vNuma узлов ВМ равно количеству Numa узлов узла. Максимальное количество vCPU и оперативная память делятся поровну между vNuma узлами ВМ.

Пример vNUMA с трансляции в ВМ с 16 vCPU и 5.86 Гб оперативной памяти на узле с 2 NUMA:

image

NUMA

С версии 5.1.0 для управления резервацией и распределением процессов вычислительного узла можно задейстовать сервис numad. Включение/отключение его работы происходит через Настройки контроллера. Настройка действует сразу на все узлы под управлением данного контроллера. При включении настройки через некоторое время включится сервис numad, смотреть его журналы можно командой log numad.

Просмотр текущей статистики по numa осуществляется через команду numastat, для ВМ numastat -p qemu.

Посмотреть pid включенной ВМ можно через команду vm info {vm_name or vm_id}.

image

NUMA и KSM

Рекомендуется при включении сервиса numad отключить параметр "режим дедуплицирования памяти между NUMA nodes" (Merge across nodes) в Настройках KSM узла.

Back to top