6

Подробная информация: я пытаюсь запустить 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

1 ответ1

9

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .