Статья была написана 14 мая 2011 г. Перенесена из старого блога.
По умолчанию, все вЦП(vCPU) работают(как процессы) на всех физических ЦП хоста и имеют одинаковый приоритет между собой. В такой ситуации ресурсы физических ЦП(процессорное время) равномерно распределяются между всеми вЦП. А в случае необходимости любая из ВМ может получить все ресурсы физических ЦП(вне зависимости от количества вЦП), а остальные ВМ будут ждать когда прожорливая ВМ «закончит».
Для избежания подобных ситуаций, в XenServer реализовано несколько техник разграниченичения ресурсов физических ЦП между вЦП или попросту между ВМ.
В графическом интерфейсе XenCenter доступен только один из возможных вариантов — приоритеты вЦП (Рис №1). Данная техника позволят указать приоритет вЦП конкретной ВМ относительно остальных вЦП используемых в других ВМ. Это означает, что при возникновении борьбы за ресурсы физического ЦП, победит та ВМ у которой вЦП имеют наивысший приоритет. В случае же простоя физических ЦП, приоритеты не работают, и любая ВМ даже с низким приоритетом вЦП сможет получить нужные ей ресурсы.
Рис. №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
Рис. №2. Сравнение конфигурации до(слева) и после(справа).
Помогла ли вам статья?