Задать вопрос
grabbee
@grabbee

Сколько виртуальных ядер выделять для виртуальной машины?

Сейчас вылазит steal до 50% от мощности процессора. Чем больше ядер давать, тем больше ожидание соседей. Кажется, если выдать всем по 1 ядру, наступит счастье. Как вообще раздавать ядра виртуалкам? Может есть специальная настройка CPU для контроля производительности?

На хосте Intel® Xeon E3 1220 4 ядра 4 потока. Запихнул в него 5 виртуалок по 2 ядра каждой. Потом трем из них дал по 4 ядра, вылез steal(ожидание CPU соседей) до 50% от мощности процессора, то есть два ядра грубо говоря не работают всё равно. А если вернуть и поставить только 2 ядра, ожидание падает до 20% .
  • Вопрос задан
  • 10196 просмотров
Подписаться 2 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
grabbee
@grabbee Автор вопроса
Приоритет при запросе физических поток имеет виртуальная машина с большим числом vCPU, т.к. будет обращаться к гипервизору чаще, чем ВМ с меньшим числом процессоров. Так что приоритезацию процессорных ресурсов стоит рассматривать только в случае нескольких мультипроцессорых машин. При общем числе vCPU всех виртуальных машин на хосте, равном числу процессорных потоков (в том числе и получаемых с помощью Hyper-Threading) маппинг идет 1:1, т.е. на один vCPU - одно ядро. Если общее число виртуальных процессоров превышает число физических потоков - виртуальному процессору выделяется часть процессорного времени физического сокета - тут в действие как раз вступает приоретизация для каждой ВМ.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы