XenServer 5.6. Распределение ресурсов CPU

Статья была написана 14 мая 2011 г. Перенесена из старого блога.

XenServer 5.6. Распределение ресурсов CPUПо умолчанию, все вЦП(vCPU) работают(как процессы) на всех физических ЦП хоста и имеют одинаковый приоритет между собой. В такой ситуации ресурсы физических ЦП(процессорное время) равномерно распределяются между всеми вЦП. А в случае необходимости любая из ВМ может получить все ресурсы физических ЦП(вне зависимости от количества вЦП), а остальные ВМ будут ждать когда прожорливая ВМ «закончит».
Для избежания подобных ситуаций, в XenServer реализовано несколько техник разграниченичения ресурсов физических ЦП между вЦП или попросту между ВМ.

В графическом интерфейсе XenCenter доступен только один из возможных вариантов — приоритеты вЦП (Рис №1). Данная техника позволят указать приоритет вЦП конкретной ВМ относительно остальных вЦП используемых в других ВМ. Это означает, что при возникновении борьбы за ресурсы физического ЦП, победит та ВМ у которой вЦП имеют наивысший приоритет. В случае же простоя физических ЦП, приоритеты не работают, и любая ВМ даже с низким приоритетом вЦП сможет получить нужные ей ресурсы.
XenServer 5.6. Распределение ресурсов CPUРис. №1. Установка приоритетов вЦП в свойствах ВМ.

Бывают случаи когда приоритетов вЦПУ доступных в интерфейсе XenCentеr не достаточно. В таком случае на помощь приходит консоль и Xen API, в состав которого входя команды позволяющие жестко разделить ресурсы ЦП между ВМ а так же привязать некоторые ВМ к конкретным физическим процессорам(они же ядра).

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

Подключаемся к консоли отдельно стоящего Xen-хоста или мастера если хосты в пуле, с помощью SSH или через консоль XenCentr’a.
Смотрим список имеющихся ВМ:

#xe vm-list
uuid ( RO) : 711e0b3d-2780-4e75-b35f-ea95cf4a78b0
name-label ( RW): Control domain on host: xenserverve-02
power-state ( RO): running

uuid ( RO) : 9d79cfca-962f-db0d-d965-78ed0955930e
name-label ( RW): Demo Linux VM (2)
power-state ( RO): halted
Список доступных ВМ, их имена и UUID’ы а так же текущее состояние.

Здесь нам нужен только UUID интересующей нас ВМ.

Выполняем привязку:
#xe vm-param-set uuid=815e35f4-08b8-9c74-2ca7-16bcd5f476c3 VCPUs-params:mask=1,2
Устанавливаем значение(vm-param-set) параметра(VCPUs-params:) у конкретной ВМ(uuid) где mask=1,2 означает, что указанная нами ВМ будет работать только на 1-м и 2-м процессорах. В не зависимости от количества вЦП внутри этой ВМ.

Установка максимального значения использования физического ЦП

В предыдущем разделе, для одной ВМ выделено целых 2-а физических процессора. Если на хосте установлено два четырех ядерных ЦП, то выделение всего 2-х ядер в принципе можно считать ограничением. Но если физических ядер всего два, то здесь нужна более гибкая система разграничения ресурсов.

#xe vm-param-set uuid=815e35f4-08b8-9c74-2ca7-16bcd5f476c3 VCPUs-params:cap=50
Устанавливаем значение(vm-param-set) параметра(VCPUs-params:) у конкретной ВМ(uuid) где cap=50 означает, что указанная нами ВМ получет 50% одного физического ЦП.

В нашем случае, ВМ получит лишь половину одного физического ЦП вместо выделенных ей ранее 2-х. Если установить cap=100 то это целый физический процессор, cap=600 — это 6-ть физических а cap= 25 — это четверть одного и т.д.

Относительные приоритеты вЦП

Изменять данный параметр как уже сказанно ранее можно и средствами XenCentr. Но для полноты картины покажу, как это сделать через консоль используя API.

#xe vm-param-set uuid=815e35f4-08b8-9c74-2ca7-16bcd5f476c3 VCPUs-params:weight= 65536
Устанавливаем значение(vm-param-set) параметра(VCPUs-params:) у конкретной ВМ(uuid) где weight=65536 означает, приоритет вЦП текущей ВМ относительно вЦП других ВМ.

Шкала приоритета начинается от 1 — самый низший и заканчивается 65536 — наивысший приоритет.
По умолчанию для всех ВМ устанавливается значение равное 256 — нормальный приоритет.
Используя приоритеты можно создать сбалансированную, иерархическую систему разделения ресурсов ЦП.

Изменения в конфигурации ВМ

Все проделанные нами изменения можно наблюдать в «конфигурационном файле» ВМ расположенном как и все остальные параметры хоста и других ВМ в единой, централизованной базе данных(state.db) в формате вездесущего xml расположенной в /var/xapi/. Рис. №2
XenServer 5.6. Распределение ресурсов CPUРис. №2. Сравнение конфигурации до(слева) и после(справа).

Добавить комментарий