Один физический ЦП может использоваться как много виртуальных ЦП. Ресурсы ЦП в решениях для виртуализации редко заканчиваются. ОЗУ и хранилище всегда являются ограничивающими факторами ...
Помните, что в VMware загрузка ЦП выражается в используемых МГц, а не в ядрах ... Если только вы не установили привязку всех виртуальных ЦП на 100% ВСЕ ВРЕМЯ , я не думаю, что ваш поставщик прав.
Давайте посмотрим на следующий кластер систем ...
из другого активного кластера - 3 хоста 42 виртуальных машины
Чтобы расширить описание ewwhite, если у вас нет приложений, которые могут явно использовать преимущества нескольких виртуальных ЦП или нескольких ядер на один виртуальный ЦП, выделение нескольких виртуальных ЦП / ядер для виртуальной машины не дает абсолютно никаких преимуществ. . Фактически, чаще всего вы фактически получаете более низкую производительность, чем работу на одном vCPU, которому назначено одно ядро, отчасти из-за накладных расходов на планирование, необходимых для запуска нескольких vCPU.
FWIW, in При настройке VDI часто упоминаемое число составляет 5 виртуальных ЦП на физическое ядро. Конечно, это касается рабочих столов в офисе. Если ваши виртуальные машины все время заняты компиляцией кода, возможно, вы не сможете уместить 5 виртуальных ЦП на каждое физическое ядро.
Причина, по которой многие люди говорят, что «это зависит», заключается в том, что это действительно так. Посмотрите на значения готовности ЦП и затем решите, можно ли увеличить нагрузку на ЦП в конкретной системе. Готовность ЦП - это показатель готовности виртуального ЦП к выполнению команды, но он должен ждать, пока станет доступным физическое процессорное время.
В вашем случае, если вы компилируете большие программы, вполне возможно, что вашим виртуальным машинам действительно понадобится много процессорного времени. Как заметил ewwhite, обычно виртуализация имеет тенденцию ограничиваться дисковым вводом-выводом и RAM, а не CPU.
Одно практическое правило, которое я видел (возможно, в документации VMware), состоит в том, чтобы не выделять виртуальной машине больше ядер, чем физически существует на хосте, потому что это приведет к эмуляции нескольких виртуальных ядер. одно ядро, добавляя ненужные накладные расходы.
Основная проблема в основном та же, что и при планировании процессов в физической системе. Пока нагрузка на систему ниже количества ядер (или даже логических процессоров в случае HyperThreading), все в порядке, и процессоры могут справиться с нагрузкой.
Пока одновременная нагрузка на все используемые виртуальные ЦП не превышает нагрузку, которую могут обрабатывать ваши физические ядра, все в порядке.
Для ваших требований только компиляция - это работа, связанная с процессором, которая требуется только время от времени. Для виртуальных машин-компиляторов мы выделяем столько процессоров, сколько доступно. Поэтому, если есть необходимость в компиляции, она будет выполнена как можно быстрее (если ваш компилятор поддерживает параллельную компиляцию).
Это может быть неверно для ВМ-компилятора, находящейся под постоянной нагрузкой (например, если вы предоставляете Интернет-сервис для создания компиляций, который постоянно используется)