Виртуальная машина Windows очень медленная при работе от внешнего USB3.0 SSD по сравнению с виртуальной машиной Linux и жестким диском USB3.0

2122
MADforFUNandHappy

Подробная информация: я пытаюсь запустить Windows Virtualbox Windows VMDK от внешнего USB 3.0 SSD. Я использую систему Arch Linux, которая также установлена ​​на этом внешнем SSD. ВМ работает нормально, если я загружаю ее с внутреннего SSD (при использовании системы на внешнем SSD). То же самое верно для виртуальной машины Linux, загруженной с внешнего SSD (также при использовании системы на внешнем SSD).

Краткая информация: Внешний твердотельный накопитель представляет собой Samsung 850 evo 512 ГБ (M2 Verison) с адаптером M2 - USB3.0. Как упоминалось выше, другие Vms и при запуске Windows VM с внутреннего SSD или даже с внешнего жесткого диска USB3.0 (это медленно, но все же намного быстрее, чем внешний SSD в этом случае) работает нормально.

Настройки ВМ:

16GB ram chipset PIIX3 I/O APIC enabled Hardware Clock UTC Time enabled 4 Cores 100% (4.5Ghz) VT-x enabled 

Проблема: ВМ загружается правильно, но время от времени приводит к зависанию системы хоста и через 20 минут выходит на экран входа в систему. Поскольку это казалось проблемой с диском, я загрузил виртуальную машину с внутреннего SSD и отключил функцию подкачки дисков Windows, чтобы уменьшить объем записи на диск. Затем я скопировал измененный vmdk на внешний SSD и изменил Virtualbox на моей внешней системе соответственно. Это, однако, ничего не изменило. (Я даже увеличил оперативную память до 16 ГБ).

Предположение По какой-то причине Windows VM делает ужасное количество операций записи на диск по сравнению с Linux Linux, забавно то, что я делал то же самое некоторое время назад на внешнем жестком диске USB 3.0, который на самом деле намного медленнее, чем SSD (однако я не запускайте хост-систему на одном диске)

Проблема, конечно, не в SSD, поскольку я использую тот же SSD, что и внутренний SSD. Адаптер отлично работает для системы Linux, Linux VM и любой другой программы, так что я тоже не думаю, что это так.

Я постараюсь найти в журналах какую-то информацию, но если у кого-то есть другой Idear, он будет очень признателен.

Вопрос: Как я могу улучшить производительность виртуальной машины Windows на моем внешнем твердотельном накопителе и почему Windows требует большого количества трафика ввода-вывода?

Комментарий к решению:

Использование кэширования с обратной записью, как предложено @Eugen Rieck, действительно сделало виртуальную машину пригодной для использования, я полагаю, что дополнительный объем ввода-вывода с хост-системы на том же внешнем SSD был слишком большим для контроллера USB3.0 (без кэширования). В Virtualbox вы найдете эту опцию под:

Your_VM_Settings->Storage->select_your_Controller->Attributes->Use Host I/O Cache 

Помимо недостатка, упомянутого @Eugen Rieck, кажется, есть еще один, согласно @aeichner с форума virtualbox

Кэш ввода-вывода хоста по умолчанию не используется, поскольку он может вызвать тайм-ауты ввода-вывода в гостевой системе, если хост сталкивается с высокой нагрузкой ввода-вывода и кэш-память хоста не справляется с этим. Айхнер, 2011

6

1 ответ на вопрос

9
Eugen Rieck

Плохая новость: Windows (только ОС, а не приложения) выполняет больше операций записи на диск, чем Linux. 2 порядка, с этим ничего не поделаешь. В дополнение к этому, он делает на один порядок больше операций чтения с диска.

Хорошая новость: при использовании кэширования с обратной записью на уровне гипервизора (то есть в VirtualBox) вы можете значительно улучшить ситуацию. Это может привести к повреждению данных, если хост выйдет из строя, но с хорошим ИБП это должно быть управляемым.

Еще одно: если вы используете моментальные снимки, пересмотрите их - моментальные снимки имеют значительный коэффициент усиления записи, что очень плохо в таком сценарии.

Почему Windows так много пишет? Tim 7 лет назад 6
@ Тим трудно сказать; Вы не можете войти и посмотреть на то, что делает запись (какое право мы имеем, чтобы посмотреть на _personal_ код Microsoft?). wizzwizz4 7 лет назад 0
Моей единственной мыслью по этому поводу будет индексатор. Если вы регулярно меняете файл, то индексатор работает постоянно. Есть много вещей, которые вы можете отключить при использовании SSD и Windows. Мой Surface Pro работал с 4 часов на одну зарядку (хорошее использование) до 5+ часов на одну зарядку (хорошее использование), когда я отключил только индексатор. Colin Wiseman 6 лет назад 0