У меня есть четырехъядерный процессор i7 с гиперпоточностью (8 логических ядер), когда я настроил виртуальную машину на использование 8 процессоров, VirtualBox дал мне предупреждение о том, что у меня только четыре ядра (что верно) и что это может вызвать проблема производительности. Но гиперпоточность - это аппаратная особенность, поэтому ОС видит 8 ядер и отправляет инструкции всем 8. Что, если установить значение 4, виртуальная машина будет использовать 2 ядра (4 потока) вместо 4 одновременных потоков (на всех 4 ядрах) )? Полученное предупреждение учитывает, что на моей машине есть гиперпоточность?
Я обнаружил, что, хотя в VirtualBox возможно (и, возможно, быстрее) (мой опыт был с версией 5.1.0) выделять виртуальные ЦП виртуальной машине на основе логических процессоров, при работе с высокой нагрузкой могут возникнуть проблемы внутри гостевой ОС. , В моем случае виртуальная машина Windows 2012 R2 с 12 виртуальными ЦП на 8-ядерном хосте Ubuntu 16.04 (который сообщает о 16 логических процессорах) будет BSOD во время высокой загрузки ЦП с сообщением об ошибке DPC_WATCHDOG_VIOLATION. Анализ мини- дампов с использованием osronline.com показал, что причиной нарушения является e1g6032e.sys (сетевой драйвер Intel 100/1000, встроенный в Windows).
Это наводит меня на мысль, что время в гостевой ОС отрицательно сказывается при выделении виртуальных ЦП на основе емкости логического процессора и при работе виртуальной машины с высокой нагрузкой в течение продолжительных периодов времени. В моем случае 100% загрузка процессора внутри виртуальной машины Windows в течение нескольких минут приведет к BSOD. После уменьшения количества vCPU до 8 (что соответствует количеству физических ядер хоста), Windows VM больше не BSOD в подобных ситуациях высокой нагрузки. Документацию из VirtualBox говорит один должен это сделать, но не дает каких - либо причин.
В моей среде также работали две другие виртуальные машины Ubuntu, каждая из которых имела 8 собственных виртуальных процессоров. Однако нагрузка на них была минимальной во время проблем BSOD в Windows VM.
источник
Полученное предупреждение учитывает, что на моей машине есть гиперпоточность?
Да. Если вы установите количество ядер в виртуальной машине больше, чем у вас физически, процесс планирования задач в Virtual Box сверх фиксирует ресурсы ЦП, что приводит к серьезным проблемам с производительностью.
Что касается распределения нагрузки между ядрами, то это задача основной операционной системы, и она должна вести себя в правильном стиле.
источник
Это была оригинальная виртуальная машина для вашей машины? Иногда вы будете получать специфические ошибки, если клонируете виртуальную машину и перемещаете ее на другую машину и / или меняете настройки.
Я рекомендую загрузить и установить последнюю версию Virtual Box с последними расширениями.
Я зафиксировал все восемь ядер и не получаю эту ошибку, когда на моем i7 запущена виртуальная машина с Ubuntu 13.10.
источник