Tôi thấy rằng mặc dù có thể (và có thể nhanh hơn) trong VirtualBox (kinh nghiệm của tôi là với phiên bản 5.1.0) để phân bổ vCPU cho VM dựa trên bộ xử lý logic, người ta có thể gặp sự cố bên trong HĐH khách khi chạy ở mức tải cao . Trong trường hợp của tôi, máy ảo Windows 2012 R2 có 12 vCPU trên máy chủ Ubuntu 16.04 lõi 8 (báo cáo 16 bộ xử lý logic) sẽ BSOD trong khi tải CPU cao với thông báo lỗi DPC_WATCHDOG_VIOLATION. Một phân tích nhỏ bằng osronline.com cho thấy e1g6032e.sys (trình điều khiển mạng Intel 100/1000 có nguồn gốc từ Windows) là nguyên nhân của vi phạm.
Điều này khiến tôi tin rằng thời gian bên trong HĐH khách bị ảnh hưởng tiêu cực khi phân bổ vCPU dựa trên dung lượng bộ xử lý logic và chạy VM ở mức tải cao trong thời gian dài. Trong trường hợp của tôi, tải CPU 100% bên trong Windows VM trong vài phút sẽ dẫn đến BSOD. Sau khi giảm số lượng vCPU xuống còn 8 (tương ứng với số lượng lõi vật lý của máy chủ), Windows VM không còn BSOD nữa trong các tình huống tải cao tương tự. Các tài liệu trực tuyến từ VirtualBox nói ta nên làm điều này, nhưng không đưa ra bất kỳ lý do.
Trong môi trường của tôi cũng có hai máy ảo Ubuntu khác đang chạy, mỗi máy có 8 vCPU riêng. Tuy nhiên, tải cho chúng rất ít tại thời điểm xảy ra sự cố BSOD của Windows VM.