Как улучшить производительность моего гостя VirtualBox?

38

Я запускаю гостевую Ubuntu 12.04 на хосте Ubuntu 12.04 с VirtualBox, и гость намного, намного медленнее, чем хост ( ALT+TABзанимает 4-5 секунд). Я осмотрелся и обнаружил противоречивые мнения о VirtualBox и VMware (бесплатно); так что я думал сохранить прежнее.

Обе системы обновлены, я установил дополнения на гостевой компьютер и равномерно распределил память и видеопамять (64 МБ) между гостем и хостом. Я использую ноутбук Toshiba M200 с 4 ГБ оперативной памяти и общей видеопамятью. Биос хоста не включает опцию конфигурации для виртуализации машины. У меня есть 2 процессора, и я не могу передать их обоим виртуальной машине.

Есть ли что-то, что я упустил из виду, что может решить мою проблему?

Не стесняйтесь просить больше информации, и спасибо за любую помощь.

РЕДАКТИРОВАТЬ На холостом ходу с системным монитором открыть (один) гостевой процессор никогда не становится ниже 55% и может подняться до 80 - 90%, просто перемещая мышь вокруг. Открытие Firefox приведет к тому, что системный монитор будет показывать использование процессора в гостевой системе на 100%, в то время как хост показывает, что оба процессора работают равномерно - около 60%.

Мой процессор есть Intel® Core™2 Duo CPU T5450 @ 1.66GHz × 2.

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

ecoologic
источник
даже установив unity2d (что помогло) и попробовав другую конфигурацию, vm все еще слишком медленный на мой вкус, поэтому я отказался от этой идеи
ecoologic
Я думаю, что ответ JohnP является наиболее подходящим здесь.
Лео Леопольд Герц 준영

Ответы:

29

Я не очень разбираюсь в Player, но настройки Vbox не подходят для выпусков Ubuntu, которые предпочитают настоящий GPU.

  • При вращении жестких дисков предварительно выделите весь виртуальный диск. На SSD это не имеет значения. Разреженные выделения VDI / qcow2 действительно снижают производительность, но, по-видимому, с 2015 года это сокращение составляет менее 10%. Взвесьте производительность по сравнению с удобством.
  • Выделите только необходимое вам хранилище. Храните большие файлы в другом месте, за пределами vStorage.
  • Никогда не выделяйте больше процессоров или оперативной памяти, чем нужно. 1 vCPU, вероятно, достаточно.
  • Оставьте 1 ГБ оперативной памяти для HostOS. Не перезагружайте оперативную память.
  • Используйте драйверы VirtIO для хранения и работы в сети. Современные гости Linux поддерживают это. Для гостей Windows используйте драйверы SATA (хранилище) и Intel PRO / 1000 (сеть). Можно использовать драйверы virtio под Windows, это немного сложнее.
  • Включите ACPI и AHCI для всех гостей с 2003 года, WinXP и позже.
  • Настольные виртуальные машины должны получить все 128 МБ дисплея vRAM
  • Виртуальные машины сервера должны оставаться с 9 МБ vRAM; не трать это.
  • Избегайте настроек ускорения 2D и 3D, пока все остальное не будет работать так, как вам нравится. Я серьезно. Ubuntu делает плохие вещи, когда это включено. Это может принести Core i7 на землю.

Для более подробной информации: http://blog.jdpfu.com/2012/09/14/solution-for-slow-ubuntu-in-virtualbox

JohnP
источник
1
как предварительно выделить весь виртуальный диск?
Тоскан
5
«Используйте драйверы VirtIO для хранилища» - пока я не пропущу что-то очевидное, VirtualBox не реализует паравиртуализированное хранилище. Если это произойдет, пожалуйста, скажите мне, где, потому что я хотел бы использовать его.
cdhowie
Выделите только необходимое вам хранилище . Я не согласен с этим. Вы можете настроить диск до 50 ГБ динамически. У вас будут проблемы со стабильностью, если вы выделите слишком мало места. Динамически расширяемое пространство не занимает максимум времени, а только столько, сколько нужно.
Лео Леопольд Герц 준영
Единственный известный мне способ предварительного выделения диска - использовать инструмент vboxmanage и скопировать старый файл VDI в новый полностью выделенный файл VDI.
JohnP
Видел, что vbox включает в себя драйверы virtio.
JohnP
7

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

Подумай об этом так. Ваш хост-компьютер должен запустить свою собственную систему плюс контейнер для гостя. Гость попадает в ресурсную борьбу с хост-машиной. Попробуйте дать гостю меньше и посмотрите, как он работает.

Для лучшей производительности вам понадобится 64-битная машина с объемом памяти более 4 ГБ.

Nate
источник
Я на самом деле перепробовал несколько конфигураций, прежде чем спрашивать сообщество, на этом этапе ram не должно быть проблемой (большая часть не используется), из вашего ответа я понимаю, что проблема должна полагаться главным образом на процессор (часто на 100%), Я учил, что мой ноутбук был достаточно мощным, может быть, именно здесь я ошибаюсь ...
ecoologic
Можно подумать, как наблюдать за использованием ресурсов как на хосте, так и в гостевой системе, и видеть, что и где исчерпывается. Какой тип процессора у вас есть?
Нат
это не самая быстрая машина, которую вы когда-либо видели, но она меня никогда не разочаровывала (ответ обновлен).
экологическое
Да, я бы сказал, что ваша машина недостаточно мощна для быстрой виртуализации. Вы, очевидно, работаете, так что вам решать, хотите ли вы жить со скоростью.
Нат
2
@ecoologic: Unity2D работает намного быстрее - вы пробовали?
Таккат
4

В дополнение к предыдущим ответам об оптимальных настройках VirtualBox, есть отличная запись в блоге Nam Huy о том, как заставить 3D-ускорение работать для гостя Ubuntu. Это особенно полезно для Ubuntu 13.04, так как больше нет возможности устанавливать Unity 2D, оставляя новую установку без реальной рабочей нагрузки на 80-100% загрузки процессора из-за программного рендеринга, что делает его практически бесполезным для меня.

Основная идея состоит в том, чтобы установить гостевые дополнения, загрузить «vboxvideo» etc/modules, перезагрузить, а затем активировать 3D-ускорение в настройках VirtualBox Display. Обратите внимание, что включение 3D-ускорения должно быть самым последним шагом после настройки всего остального в гостевой системе.

Для меня это принесло огромный прирост производительности, в полноэкранном режиме я даже не могу отличить мою родную ОС от гостевой системы Ubuntu.

pederpansen
источник
Для тех, кто также получает «Ошибка соединения с базой данных», существует кэшированная версия с машины Way Back: web.archive.org/web/20160320085343/https://namhuy.net/951/…
Павел
4

Я испытал ту же проблему

Хост: Ubuntu 14.10 (64-битная версия), Гость: Windows 7 (64-битная версия)

Даже при включенной виртуализации в BIOS хоста загрузка ЦП постоянно оставалась на уровне 40-50% в состоянии ожидания гостя.

Что мне помогло, так это установка Guest Addition с поддержкой Direct 3D (это нужно сделать в безопасном режиме) и включение кэша ввода-вывода хоста контроллера SATA

Итак, мои текущие настройки:

система

Базовая память: 4096 МБ (8192 МБ общей памяти хоста)

Процессор: 6 процессоров (из хоста 6 процессоров)

PAE / NX: включено

VT-x / AMD-V: включено

Вложенный пейджинг: включен

дисплей

Видеопамять: 128 Мб

3D-ускорение: включено

2D ускорение: включено

Работает как шарм! Версия Virtual Box: 4.3.18_Ubuntu r96516

Тимофей Бондаренко
источник
0

Хотя первоначальный ответ очень подробный, я чувствую, что прямой ответ заключается в том, что честно говоря, система / ноутбук работает слишком медленно и недостаточно мощно, мало что можно сделать, если в вашей версии Virtualbox нет проблем с конфигурацией или ошибки. Вы можете попытаться оптимизировать, но оперативная память и два ядра процессора на частоте 1,66 ГГц просто не собираются его сокращать. С такой загрузкой процессора это очень вероятно из-за подкачки и нехватки ОЗУ.

Короче говоря, вы можете попробовать другой оконный менеджер, который является более легковесным, а также попробовать другие ОС, чтобы увидеть, возможно, есть проблемы с конфигурацией вашего Virtualbox и обновить до последней версии.

Ариб Су Ясир
источник