У меня есть четырехъядерный процессор i7 с hyperthreading (8 логических ядер), когда я настроил виртуальную машину на использование 8 процессоров, VirtualBox дал мне предупреждение о том, что у меня есть только четыре ядра (что правда), и что это может вызвать проблемы с производительностью. Но Hyper-threading-это аппаратная функция, поэтому ОС видит 8 ядер и отправляет инструкции всем 8. Что делать, если при установке значения 4 виртуальная машина будет использовать 2 ядра (4 потока) вместо 4 одновременных потоков (на всех 4 ядрах)? Делает предупреждение У меня учесть что моя машина имеет многопоточности?
Четырехъядерный хост с Hyper-threading, сколько процессоров настроить в VirtualBox?
4 ответа
на основе бенчмарка сделано Кристиан Wedberg Я бы сказал, Вы должны использовать все логические ядра у вас.
Также я сделал свой собственный тест, используя тот же процессор (i7, 4 CPU с HT), который подтвердил повышение производительности для многопоточных приложений. Если гостевой ПК (Win. 8.1 x64) использовали все 8 ядер, затем host PC (Ubuntu x64) также использовал все 8 ядер.
я сравнивал производительность в однопоточных приложениях. В в обоих случаях я измерил одни и те же значения, поэтому нет штрафа, используя больше, чем физическое (но до логического) количество процессоров.
Здесь вы видите, что 1 CPU полная загрузка в гостевом ПК приведет к 1 загрузке CPU в хост-компьютере.
Я обнаружил, что, хотя это возможно (и, возможно, быстрее) в VirtualBox (мой опыт был с версией 5.1.0), чтобы выделить vCPUs для виртуальной машины на основе логических процессоров, можно столкнуться с проблемами внутри гостевой ОС при работе при высокой нагрузке. В моем случае виртуальная машина Windows 2012 R2 с 12 vcpu на 8-ядерном хосте Ubuntu 16.04 (который сообщает о 16 логических процессорах) будет BSOD во время высокой нагрузки на процессор с сообщением об ошибке DPC_WATCHDOG_VIOLATION. Анализ минидампа с использованием osronline.com показанный e1g6032e.sys (Intel 100/1000 сетевой драйвер родной для Windows), чтобы быть причиной нарушения.
Это заставляет меня полагать, что синхронизация в гостевой ОС негативно влияет при выделении vcpu на основе емкости логического процессора и запуске виртуальной машины при высокой нагрузке в течение длительных периодов времени. В моем случае 100% загрузка процессора внутри виртуальной машины Windows в течение нескольких минут приведет к BSOD. После уменьшения количества vCPU до 8 (что соответствует количество физических ядер хоста), виртуальная машина Windows больше не BSOD при аналогичных ситуациях высокой нагрузки. The документации из VirtualBox говорит, что это нужно сделать, но не предлагает никаких причин.
в моей среде также были запущены две другие виртуальные машины Ubuntu, каждая с 8 собственными vcpu. Однако нагрузка на них была минимальной во время проблем BSOD виртуальной машины Windows.
учитывает ли предупреждение, которое я получил, что моя машина имеет гиперпоточность?
да. Если задать число ядер в виртуальной машине больше, чем физически, процесс планирования задач в Virtual Box over фиксирует ресурсы ЦП, что приводит к основным проблемам производительности.
Что касается распределения нагрузки между ядрами, то это работа ОС хоста, и должна вести себя в правильном поместье.
была ли эта виртуальная машина оригинальной для вашей машины? Иногда при клонировании виртуальной машины и перемещении ее на другой компьютер и / или изменении параметров возникают особые ошибки.
Я рекомендую скачать и установить последнюю версию Virtual Box с последними расширениями.
Я совершил все восемь ядер, и я не получаю эту ошибку с моим i7 работает виртуальная машина с Ubuntu 13.10.
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]