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