Почему гость Ubuntu в VirtualBox работает очень медленно?
В настоящее время я использую Ubuntu 12.04 LTS в качестве хост-машины и виртуализировал три машины:
- гость Xubuntu 12.04
- Windows 7 гость
- гость Ubuntu 12.10
Все гости имеют одинаковые настройки по умолчанию для VirtualBox, но Ubuntu 12.10 работает медленнее!
Установка заняла 1 ч 40 мин! (Обычно это занимает 40 минут.) Теперь его невозможно использовать, и все операции выполняются очень и очень медленно.
Я использую VirtualBox версии 4.2.4.
Есть идеи?
Почему это медленно? И как я могу сделать это быстрее?
7 ответов
Я слышал, что это как-то связано с тем, что они удалили Unity 2D, или как-то переход на 3D Unity только замедляет производительность виртуальной машины из-за сильной зависимости от обработки ЦП в большей степени, чем раньше. Подкаст Linux Outlaws немного об этом говорил, но я об этом забываю.
Обновление: проблема в гостевых дополнениях Virtualbox, не обеспечивающих 3D-ускорение в 12.10. См Ubuntu 12.10 не может использовать 3D-ускорение. Не в состоянии построить DRM.
Ubuntu 12.10 больше не включает Unity 2D, которая была реализована для платформ, которые не могут обеспечить 3D-ускорение. Вместо этого в Ubuntu 12.10 Unity работает под управлением LLVM, в результате чего код, предназначенный для графического процессора, запускается на процессоре. Это намного медленнее, чем при использовании графического процессора.
Чтобы проверить, использует ли ваш Ubuntu 12.10 гость 3D-ускорение, выполните следующую команду:
$ /usr/lib/nux/unity_support_test -p
Not software rendered: no
Not blacklisted: yes
GLX fbconfig: yes
GLX texture from pixmap: yes
GL npot or rect textures: yes
GL vertex program: yes
GL fragment program: yes
GL vertex buffer object: yes
GL framebuffer object: yes
GL version is 1.4+: yes
Unity 3D supported: no
Как вы можете видеть, "Не программный рендеринг" и "Unity 3D поддерживается" оба возвращают "нет" в этом примере, что означает, что Unity использует медленный LLVMpipe.
Как включить 3D-ускорение (только для VirtualBox 4.2.x)
Эти инструкции предназначены для VirtualBox 4.2.4 или 4.2.6, установленного с веб-сайта VirtualBox, а не из репозитория Ubuntu. В будущих версиях VirtualBox эта проблема может быть решена автоматически или может потребоваться другой обходной путь.
- Установите VirtualBox Oracle VM VirtualBox Расширение пакета.
- Создайте экземпляр VirtualBox и установите на него Ubuntu 12.10.
Установите некоторые необходимые пакеты для гостевых дополнений:
sudo apt-get install linux-headers-$(uname -r) build-essential
Установите гостевые дополнения, нажав "Устройства", "Установить гостевые дополнения" и выполнив эту команду из каталога компакт-диска:
sudo ./VBoxLinuxAdditions.run
Добавить
vboxvideo
Драйвер к экземпляру, запустив:sudo bash -c 'echo vboxvideo >> /etc/modules'
- Завершите работу экземпляра VirtualBox.
- Откройте настройки экземпляра Virtualbox, перейдите к "Экрану" и установите флажок "Включить 3D-ускорение".
Загрузите гостевую систему Ubuntu 12.10 и убедитесь, что 3D-ускорение работает, запустив:
/usr/lib/nux/unity_support_test -p
Если кажется, что окна не отображаются, установите CompizConfig Settings Manager и отключите объект Framebuffer (FBO) в разделе OpenGL:
Установите диспетчер параметров CompizConfig:
sudo apt-get install compizconfig-settings-manager
Запустите диспетчер параметров CompizConfig:
ccsm
- Выберите раздел OpenGL, а затем снимите флажок "Объект Framebuffer". Если это решает проблему, это должно быть сразу видно. Перезагрузка не требуется.
Похоже, что разработчики программного обеспечения VirtualBox работают над решением, но оно еще не готово - см. Сообщение на форуме. Обсудите выпуск 4.2.4.
Есть ветка, обсуждающая это в четвертом посте Ubuntu 12.10 "практически" непригодная для использования
Я не знаю о настройках графического интерфейса, необходимых для использования Unity внутри виртуальной машины, но я знаю, как настроить виртуальные машины под virtualbox, KVM и другими. Мне никогда не удавалось заставить Unity хорошо работать в любой виртуальной среде. Никогда не пытался слишком сильно, предпочитая использовать чистый WM или DE на основе LXDE.
Более подробные настройки находятся здесь: http://blog.jdpfu.com/2012/09/14/solution-for-slow-ubuntu-in-virtualbox
Резюме:
- Значения по умолчанию в Vbox не подходят для выпусков Ubuntu, которые любят настоящий GPU.
- При вращении жестких дисков предварительно выделите весь виртуальный диск. На SSD это не имеет значения.
- Выделите только необходимое вам хранилище. Храните большие файлы в другом месте, за пределами 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/Unity делает плохие вещи, когда это включено. Это может привести Core i7 к земле.
В других ответах есть много советов по производительности GUI. Те, вероятно, действительны тоже. Эти же советы применимы к KVM, VM-Player и другим виртуальным гипервизорам. Это работает и для серверов.
Удачи.
Я добился хороших результатов, вернувшись из Unity в резервный GNOME. Вы можете сделать это, просто установив GNOME-session-fallback из центра программного обеспечения, а затем выбрав его на экране входа в систему.
см. http://www.psychocats.net/ubuntu/classicgnome для получения подробных подробных инструкций.
Чтобы включить поддержку 3D, сначала нужно обновить linux-заголовки.
$ uname -r
$ sudo apt-get install linux-headers-$(uname -r)
$ sudo apt-get autoremove
$ sudo apt-get install build-essential
Теперь вставьте vitualbox guest iso с устройств и установите вручную
$ cd /media
$ ls
$ cd username
$ ls
$ cd VBOX*
$ ls
$ sudo ./VBoxLinuxAdditions.run
Вставьте vboxvideo в /etc/modules
$ sudo nano /etc/modules
Добавьте "vboxvideo" в конце файла
loop
lp
vboxvideo
Перезагрузите машину
$ sudo reboot
Проверьте, не "программное обеспечение визуализировано" и "Unity 3D поддерживается" включены или нет после перезагрузки
$ /usr/lib/nux/unity_support_test -p
Следующее, что вы хотите сделать, это увеличить видеопамять. Ищите файл.vbox
$ nano /home/username/VirtualBox VMs/ubuntu/ubuntu.vbox
замещать
<Display VRAMSize="128" monitorCount="1" accelerate3D="true" accelerate2DVideo="false"/>
к
<Display VRAMSize="256" monitorCount="1" accelerate3D="true" accelerate2DVideo="false"/>
Источник: Как исправить медленную производительность Ubuntu 13.04, работающую в virtualbox