Windows виртуальной машине облегчить

Ужасная производительность диска VirtualBox (РЕШЕНО)

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

Но при интенсивном использовании диска в виртуальной машине её производительность падает непропорционально драматически. Например, установка пакета, содержащего большое количество файлов, в гостевой машине Linux может растянуться на часы! Это при том, что аналогичный пакет на реальном компьютере устанавливается за минуты. Обновление Windows могут замедлить работу виртуальной машины до полной её неработоспособности.

Всё это замедляет работу и портит опыт работы с виртуальными машинами.

Данную проблему можно исправить, включив «Кэширования ввода/вывода» для виртуального диска.

Чтобы включить «Кэширования ввода/вывода»:

  1. Выключите виртуальную машину, если она включена
  2. Откройте диалоговое окно настроек виртуальной машины.
  3. Перейти в «Носители»
  4. Щёлкните контроллер «Контроллер: SATA».
  5. Включите параметр «Кэширования ввода/вывода».

Вы также можете проверить любые другие контроллеры и/или диски, чтобы увидеть, есть ли там эта опция.

Сохраните настройки и запустите виртуальную машину, и вы увидите большое улучшение производительности при интенсивном использовании диска.

Есть объяснение, почему эта нужная опция по умолчанию выключена — у неё есть некоторые недостатки. Если коротко, авторы VirtualBox исходят из концепции «безопасность важнее производительности». Рассмотрим подробнее, какие последствия может нести включение этой опции:

1. Отложенная запись через кэш ОС хоста менее безопасна. Когда гостевая ОС записывает данные, она считает данные записанными, даже если они фактически ещё не прибыли на физический диск. Если по какой-то причине запись не произойдёт (сбой питания, сбой хоста), вероятность потери данных увеличивается.

2. Файлы образов дисков обычно очень большие. Кеширование их может поэтому быстро израсходовать весь кэш ОС хоста. В зависимости от эффективности кэширования ОС хоста, это может сильно замедлить работу хоста, особенно, если несколько виртуальных машин работают одновременно. Например, в Linux хостах, кэширование хоста может привести к тому, что Linux отложит все записи до момента, когда кэш хоста почти заполнен, и затем все эти изменения записываются в один раз, это может привести к остановке выполнение виртуальной машины на несколько минут. А это в свою очередь может привести к ошибке ввода-вывода в гостевой системе, поскольку время запросов ввода-вывода истекло.

3. Напрасно расходуется физическая память, поскольку в гостевых операционных системах обычно имеются собственные кеши ввода-вывода, что может привести к двойному кэшированию (как в гостевой, так и в хост машинах) без особого положительного эффекта.

Даже если отключить кэширование ввода-вывода хоста по указанным выше причинам, VirtualBox использует свой собственный небольшой кеш для буферизации записи, но не чтения кэширование, поскольку это обычно уже выполняется гостевой ОС. Кроме того, VirtualBox полностью поддерживает асинхронный ввод-вывод для своих виртуальных контроллеров SATA, SCSI и SAS через несколько потоков ввода-вывода.

На самом деле практика показывает, что данные не теряются, а включение данной настройки отлично сказывается на производительность.

Кроме описанного способа есть ещё один вариант для продвинутых пользователей. Суть в том, что в качестве диска виртуальной машины используется реальный USB диск. С такого диска можно загрузиться как в VirtualBox, так и на физическом компьютере. При этом производительность приближается к работе реального компьютера — никаких задержек, операции обновления и установки больших пакетов происходят с той же скоростью, как на реальном компьютере. О том, как это сделать, смотрите в статье «Как в VirtualBox загрузиться с USB».

Как ускорить работу виртуальных машин VMware Workstation

VMware Workstation – один из лучших гипервизоров для Windows. Это не самая производительная, но самая стабильная программа, с помощью которой можно виртуально исследовать различные операционные системы (ОС). VMware не конфликтует с другими гипервизорами (как Microsoft Hyper-V), в ней всегда работают дополнения гостевых ОС и прочие функции (в отличие от нестабильной VirtualBox), она функциональная и настраиваемая. Ну а что касается производительности, то здесь можно кое-что предпринять. Как ускорить работу виртуальных машин (ВМ) VMware?

Читайте также:  Windows phone не установилось приложение

1. Аппаратная часть

При использовании любого гипервизора, как и в случае с физическим компьютером, аппаратная оптимизация первична, программная – вторична. Для работы с VMware не принципиально, но желательно иметь на борту физического компьютера четырёхъядерный процессор, чтобы двое ядер оставались хост-системе (основной ОС), а двое могли бы быть задействованы ВМ.

Для базовых целей типа исследования ОС и тестирования несложного софта будет достаточно 2 Гб оперативной памяти. Разве что гостевым Windows 8.1 и 10 можно выделить 3 Гб, если у физического компьютера имеется 6 или 8 Гб. Выделять больший объём без конкретных целей использования памяти нет надобности.

ВМ, размещённая на одном и том же HDD, где установлена хост-система, будет тормозить даже при мощном процессоре и отсутствии недостатка оперативной памяти. HDD – слабое звено в конфигурации и физических, и виртуальных компьютеров из-за медленной скорости чтения и записи данных. Если в наличии нет SSD, для размещения ВМ желательно выделить отдельный HDD – жёсткий диск, к которому не будет обращаться хост-система. Ну или пойти путём универсального аппаратного апгрейда – реализовать RAID 0 (как минимум). Без последнего задействовать два HDD в работе ВМ можно, если разбросать её файлы по разным дискам.

2. Файлы ВМ на разных HDD

ВМ состоит из:

  • файлов виртуального жёсткого диска (обычно это тип VMDK, но VMware также может работать с типом VHD);
  • файлов конфигурации самой ВМ;
  • файлов снапшотов;
  • кэша (данных, участвующих в сообщении хост- и гостевой ОС).

При использовании ВМ и по завершении работы с ней происходит запись данных во все эти файлы. За исключением снапшотов, если они не задействуются. Чтобы распределить нагрузку, можно файл виртуального диска VMDK (или VHD) хранить на одном HDD, а файлы конфигурации ВМ – на другом HDD, в частности, на том же, где размещается хост-система. Для всех ВМ указываем расположение по умолчанию – каталог на одном HDD.

При создании же каждой отдельной ВМ используем выборочную настройку.

И на этапе задания параметров виртуального диска указываем его месторасположение на разделе другого HDD.

Применить такую схему к уже имеющихся ВМ можно путём удаления используемого виртуального диска в параметрах машины. А затем добавления этого же диска по-новому, когда его файл VMDK (или VHD) уже будет перемещён на другой HDD.

3. Фиксированные виртуальные диски

Немного ускорить работу ВМ на HDD можно путём работы с фиксированными, а не назначенными по умолчанию в VMware динамическими виртуальными дисками. Для этого при создании ВМ на этапе указания размера диска необходимо выбрать его сохранение в одном файле и установить галочку опции выделения всего места.

При таком раскладе будет создан виртуальный диск фиксированного типа. Его файл со старта займёт указанный объём, и ресурс HDD при непосредственной работе с ВМ не будет распыляться ещё и на операцию по выделению места на физическом диске.

4. Дефрагментация HDD

Ускорить работу ВМ на HDD можно традиционным методом оптимизации этого типа жёстких дисков – дефрагментацией. В среде хост-системы Windows желательно время от времени проводить эту процедуру с использованием эффективных сторонних программ.

5. Тормоза после приостановки ВМ

Работающие с VMware наверняка замечали, что в большинстве случаев после приостановки одной ВМ сразу же оперативно запустить другую нереально. Нужно немного подождать. Естественно, речь идёт о случаях расположения ВМ на HDD. Как только мы приостанавливаем ВМ, сразу же начинается активная запись данных на диск с его загрузкой вплоть до 100%. И так может длиться несколько минут. При приостановке ВМ содержимое оперативной памяти гостевой ОС каждый раз записывается в файл «.vmem». Он находится в числе прочих файлов конфигурации ВМ и планировано занимает столько места на диске, сколько машине выделено «оперативки». По факту же размер файла варьируется в зависимости от записанных в него в последний раз данных.

Читайте также:  Windows key arrow up key arrow down key

Активная запись в файл «.vmem» сильно нагружает HDD. Назначение такой операции – запуск гостевой ОС в сохранённом состоянии при возможных сбоях в работе ВМ. Нужна ли эта возможность такой ценой – решайте сами. Если не нужна, запись данных в файл «.vmem» можно отключить. И тем самым ускорить переключение между приостановленными ВМ. Для этого необходимо открыть в любом TXT-редакторе файл конфигурации ВМ «.vmx», дописать в конце такую строчку:
mainMem.useNamedFile = “FALSE”

И сохранить файл.

6. Обрезка страничной памяти

В дополнительных параметрах ВМ есть изначально неактивная опция отключения обрезки страничной памяти. Если её активировать, фактическое выделение оперативной памяти ВМ будет происходить быстрее.

7. Плеер VMware

В состав компонентов VMware Workstation входит приложение Player. Это упрощённый вариант гипервизора, ограниченный функционально, но также и более лёгкий. Создавать и настраивать ВМ лучше, конечно же, с использованием основного компонента VMware Workstation. А вот непосредственно проводить работу с гостевыми ОС можно внутри более шустрого плеера.

8. ПО EFI

ВМ с ПО EFI эмулируют устройства, соответственно, с BIOS UEFI. Они включаются и перезапускаются немного быстрее, чем ВМ, эмулирующие устройства с обычным BIOS. Плюс к этому, EFI-машины могут быть запущены с UEFI-флешек без помощи сторонних средств.

9. Оптимизация гостевых ОС

Ускорить работу ВМ можно за счёт оптимизации гостевых Windows. В числе таковых в частности: отключение анимации, обоев, неиспользуемых служб, телеметрии, обновлений, Timeline (для версии 10). В качестве платформы для тестирования только стороннего софта можно и вовсе в качестве гостевой ОС выбрать Windows 7 или 8.1 Embedded – урезанные сборки этих версий, заточенные под работу со слабым железом.

В гостевых Windows можно смело работать с отключённым Защитником и без стороннего антивируса. За безопасность будет отвечать антивирус хост-системы. А вот для последней желательно подобрать такой антивирусный продукт, чтобы защищал, но при этом не мешал.

10. Правильный антивирус для хост-системы

Активность ВМ – это непаханое поле азарта для антивирусов. VMware Workstation, как и любой другой гипервизор, активно работает с записью данных. Причём работает с большими объёмами данных. И все эти данные антивирусы проверяют в рамках проактивной защиты. Чтобы не создавать лишней нагрузки при работе с ВМ, для хост-системы желательно подобрать хороший антивирус – эффективный в плане обнаружения реальных угроз, при этом минимально использующий аппаратные ресурсы компьютера.

Почему тормозит гостевая ОС Windows 7 Pro в VirtualBox?





Все действия мыши происходят с большими задержками и рывками. Система виснет при самых минимальных нагрузках.
Лог файл.

UPD.
Думал, что это может быть связанное масштабированием экрана
Даже при дефолтном масштабе 100% все равно тормозит, банально браузер одна вкладка с ютубом и все, ос подвисает, курсор пропадает и ос перестает исполнять команды мыши
Все без толку, не могу понять в чем проблема.

UPD.2
Попробовал установить Windows 10 x64, но увы все тоже самое как и с win7.
Не знаю, что делать.

  • Вопрос задан 16 окт. 2020
  • 315 просмотров

там всего два параметра, я их описал текстом после двух скринов:
Интерфейс паравиртуализации: По умолчанию (Пробовал различные варианты, ничего не меняется)
Nested Paging включен

PAE/NX отключил, но ничего не поменялось

Максим, имел в виду в самих настройках VirtualBox

p.s.
когда отвечаете в теле вопроса то жмите ответить, а то можно пропустить ваш ответ
p.s.2
да и хотелось бы знать более конкретную марку проца, Core i9 бывают разные

xotkot, спасибо, буду иметь ввиду.

В virtual box стоит VBoxSVGA и включено 3d ускорение

Процессор Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz

Максим,
проц свежий, виртуализацию поддерживает
VB(virtualbox) — Носители — В атрибутах диска — кеширование ввода\вывода стоит ?
и еще, на какой операционке установлен VB ? Lin, Win, Mac

Читайте также:  Ошибка при установке windows 10 0x80080005

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

xotkot, VB установлен непосредственно на системной ОС Catalina
кеширование ввода/вывода включил, но увы ничего не поменялось, кроме того даже запуская гостя в четверти экрана моего 16″ макбука ситуация та же (причем сама система запускается очень быстро, но как только все загрузилось — все тормозит жутко или вовсе зависает

В принципе я готов отдать встроенную видеокарту гостевой ос, но не могу разобраться как это сделать в VB,
подскажите пожалуйста.

Максим,
по поводу выделения гостевой отдельной видяхи ничего сказать не могу так как сам не пробовал и пока нету возможности проверить самому

попробуйте еще в гостевой системе установите цветопередачу в 32 бита, как то недавно было у меня что при переносе машины на другую систему слетела цветопередача и тоже стало жутко тормозить

xotkot, как раз и стоит True Color 32 bit, без возможности выбрать другой вариант

честно говоря, это даже тяжело назвать «тормозит», открыв диспетчер задач и панель управления ос либо виснет либо приходится очень долго ждать отклика на банальное нажатие клавиши мыши, при этом нагрузка на cpu большую часть времени вблизи 0 и Idle process всегда берет себе почти всю часть ресурсов

Вообще конечно в первую очередь надо смотреть логи. Возможно на уровне Virtualbox есть какие-то ошибки. Так же можно посмотреть журналы событий windows 7. Без этой информации можно только предполагать.

Если мне не изменяет память то windows для работы в режиме паравиртуализации нужны специальные драйвера. Когда они установлены и переключается режим виртуализации, windows 7 сама не поймет что нужно что-то менять в драйверах. Возможно 10 такому научилась, но не проверял. 7-ка точно не делает этого. Так что при смене режима виртуализации требуется менять драйвера или перенакатывать гостевые утилиты. Или вообще это внутри гостевой windows 7 это устанавливается раз при установке, готода только переустановка или сброс статусов в реестре. (тут поможет поиск «Переезд на новое железо windows 7»).

Еще можно проверить включена ли поддержка виртуализации. Может быть проблема в этом?

Итак, я начал разбираться почему svchost потребляет большую часть ресурсов, как оказалось причин может быть несколько (в том числе и вирусы), поэтому я переустановил заново гостевую вин7, и в этот раз сначала установил все доступные обновления виндоус и только после дополнения от VB.
Тут нужно отметить что у меня 16″ макбук с дисплеем ретина и разрешение экрана 3072 x 1920 и после установки дополнений от VB ОС в полноэкранном режиме использует максимальное разрешение экрана и так как винда учитывает только значение разрешения а не плотность пикселей матрицы, то все элементы становятся очень мелкими, при этом при выделенных для гостя ОЗУ 5ГБ и 2 потока от процессора все работает без каких либо лагов.
Настройки ускорения в этот раз я не менял.
А вот дальше самое интересное, при установке любого масштаба отличного от 100%, причем неважно, делается это средствами VB или функционалом самой ОС, начинаются тормоза, больше всего это проявляется в том, что реакция на передвижение мыши и нажатия начинает сильно запаздывать и происходит рывками.
При выделение вместо 2х потоков 4 становится хуже либо ничего не меняется.
Прилагаю лог последнего запуска (запустил диспетчер задач, менеджер ресурсов и оперу с одной вкладкой с ютубом — в итоге курсор пропал и пришлось вырубить гостя принудительно через VB.

Как прикрепить сюда лог файл не понял, поэтому через ссылку.

UPD.
Даже при дефолтном масштабе 100% все равно тормозит, банально браузер одна вкладка с ютубом и все, ос подвисает, курсор пропадает и ос перестает исполнять команды мыши
Все без толку, не могу понять в чем проблема.

UPD.2
Попробовал установить Windows 10 x64, но увы все тоже самое как и с win7.
Что делать не знаю.

Оцените статью