Я обнаружил, что, хотя в 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.