Я виявив, що, хоча в VirtualBox можна (і, можливо, швидше) (мій досвід роботи з версією 5.1.0) виділяти vCPU до VM на основі логічних процесорів, при роботі з великим навантаженням можуть виникати проблеми всередині гостьової ОС. . У моєму випадку Windows 2012 R2 VM з 12 vCPU на 8-ядерному хості Ubuntu 16.04 (який повідомляє 16 логічних процесорів) буде BSOD під час великого завантаження процесора з повідомленням про помилку DPC_WATCHDOG_VIOLATION. Мінімальний аналіз на osronline.com показав, що причиною порушення є e1g6032e.sys (мережевий драйвер Intel 100/1000 для Windows).
Це наштовхує мене на думку, що на розподіл часу vCPU на основі логічної ємності процесора та запуск ВМ з високим навантаженням протягом тривалого періоду негативно впливає час на внутрішню гостьову ОС. У моєму випадку 100% завантаження процесора всередині Windows VM протягом декількох хвилин призведе до BSOD. Після зменшення кількості vCPU до 8 (що відповідає кількості фізичних ядер хоста), VM Windows більше не BSOD за подібних ситуацій з високим навантаженням. Документацію з VirtualBox говорить один повинен це зробити, але не дає жодних - або причин.
У моєму середовищі також працювали два VM Vbuntu, у кожного з 8 власних vCPU. Однак навантаження на них було мінімальним під час проблем з BSOD Windows VM.