Раньше это было правдой, но больше не является исключительно правдой.
То, что они имеют в виду, является строгим совместным планированием .
Наиболее важно то, что, хотя в строгом алгоритме совместного планирования существование запаздывающего виртуального процессора приводит к одновременной остановке всей виртуальной машины. В расслабленном алгоритме совместного планирования ведущий vCPU решает, должен ли он самостоятельно останавливаться, основываясь на перекосе с самым медленным одноуровневым vCPU
Теперь, если на хосте только 4 потока, вам было бы глупо распределить их все. Если у него два процессора и 4 потока на процессор, то вам может не потребоваться выделять все содержимое одного процессора, поскольку ваш гипервизор должен попытаться сохранить виртуальные ЦП на одном узле NUMA, чтобы ускорить доступ к памяти, и вы усложнение этой работы путем выделения целого сокета одной виртуальной машине (см. стр. 12 этого PDF-документа выше).
Таким образом, существуют сценарии, в которых меньшее количество виртуальных ЦП может работать лучше, чем большее, но это не соответствует действительности в 100% случаев.
Учитывая все сказанное и сделанное, я очень редко выделяю более 3 виртуальных ЦП на гостя. Каждый получает по умолчанию 2, 3, если это тяжелая рабочая нагрузка, и 4 для таких вещей, как SQL-серверы или виртуальные машины с большой нагрузкой, или терминальный сервер с большим количеством пользователей.
MAXDOP
настройки. Однако, в зависимости от рабочей нагрузки, чрезмерно облагаемый налогом сервер SQL часто является признаком плохого проектирования базы данных - плохих индексов, отсутствие кластеризованных индексов, слишком много индексов, отсутствие оптимизации и т. Д. (Не всегда, но часто).Это во многом зависит от базового гипервизора и администраторов, которые его запускают, позвольте мне объяснить:
Что вы можете извлечь из этого? Всегда создавайте виртуальные машины с минимальными ресурсами и увеличивайте по мере необходимости. Всегда масштабируйте, а не увеличивайте, и вы сможете запускать свое приложение где угодно.
Из-за блокировки, которая может возникнуть с гипервизором, действительно верно, что 2 процессора могут быть быстрее, чем 4 процессора.
источник
Да, утверждение имеет смысл в целом. Тем не менее, это то, что вы должны проверить для вашей точной конфигурации и рабочей нагрузки. Иногда лучше использовать больше процессоров, если вы действительно можете ими воспользоваться. Однако, если у вас нет такого большого параллелизма, виртуальная машина, настроенная с меньшим количеством процессоров, часто будет работать немного лучше, так как избегает замедлений из-за пауз состояния CPU.
Я сократил количество виртуальных ЦП на ряде наших виртуальных машин и увеличил пропускную способность большинства. Горстка ухудшилась, и ее нужно было увеличить по количеству vCPU.
источник