Как вы знаете, в новой версии платформы виртуализации VMware vSphere 4.1 появилась замечательная возможность создавать виртуальные машины, у которых один виртуальный процессор (vCPU) может иметь несколько ядер (Multicore vCPU). Более ранние версии VMware ESX умели представлять только одно ядро на виртуальный vCPU машины, а сама возможность многоядерности процессоров ВМ была экспериментальной.
Как известно, многие возможности VMware vSphere приходят из настольных платформ, после того, как пройдут "обкатку" пользователями на некритичных виртуальных окружениях. Например, тонкие диски или технология TPS, которая называлась просто Page Sharing, насколько я помню, пришли из VMware Workstation.
Теперь в VMware ESX 4.1 можно создавать несколько виртуальных ядер, правда не так элегантно как это реализовано в VMware Workstation 7:
Операционная система в этом случае будет видеть виртуальные ядра vCPU виртуальной машины как отдельные логические процессоры.
Чтобы сделать это в VMware ESX 4.1, нужно открыть свойства виртуальной машины, перейти на вкладку Options и выбрать категорию General в списке Advanced options. Затем нужно нажать кнопку Configuration Parameters, которая позволит изменить vmx-файл конфигурации ВМ с помощью построчного добавления параметров и их значений.
Нужно добавить вот такую строчку в качестве параметра:
cpuid.coresPerSocket
В качестве значения можно задавать число ядер на виртуальные vCPU нашей машины. При этом число ядер должно быть степенью числа 2 (то есть 1, 2, 4 или 8 ядер - про большее не упоминается в документации).
Какие требования предъявляются к виртуальным машинам с несколькими ядрами на одном vCPU:
Поддерживается в производственной среде только для VMware ESX 4.1
Virtual Machine hardware должно быть версии 7 или выше
Чтобы настроить этот параметр, нужно предварительно выключить виртуальную машину
Опция CPU hot Add/Remove будет отключена
Почему так далеко запрятана эта возможность? Ответ прост - чтобы не баловались. Потому как нужна она только в случаях, когда особенно требуется экономия на лицензировании при необходимости наращивания производительности виртуальной машины (как раз за счет числа виртуальных ядер). То есть, если ОС или приложения лицензируются на процессор (в данном случае виртуальный), то нашпиговывание его виртуальными ядрами не увеличит стоимость необходимых лицензий, но увеличит производительность ВМ.
Однако, здесь есть одно но. Необходимо внимательно читать EULA к своему развертываемому ПО в виртуальных машинах, где определены понятия сокета, процессора и ядра, в том числе, иногда и для виртуальных сред. Очень вероятно, что такой финт с наращиванием ядер будет нарушать условия EULA.