Почему гость Ubuntu в VirtualBox работает очень медленно?

176

В настоящее время я использую Ubuntu 12.04 LTS в качестве хост-машины и виртуализировал три машины:

  • гость Xubuntu 12.04
  • Windows 7 гость
  • гость Ubuntu 12.10

Все гости имеют одинаковые настройки по умолчанию для VirtualBox, но Ubuntu 12.10 работает медленнее!

Установка заняла 1 ч 40 мин! (Обычно это занимает 40 минут.) Теперь его невозможно использовать, и все операции выполняются очень и очень медленно.

Я использую VirtualBox версии 4.2.4.

Есть идеи?

Почему это медленно? И как я могу сделать это быстрее?

Джорджио
источник
Вы пробовали возиться с конфигурациями? Вы пытались установить гостевые версии?
usr12390
Да, я установил гостевые дополнения, но, похоже, ничего не изменилось ... странно то, что я установил много виртуальных машин с Ubuntu или другим дистрибутивом, но только Ubuntu 12.10 делает это ... во время установки я оставляю все настройка по умолчанию, как всегда; остальные 2 виртуальные машины работают нормально ...
Джорджио
2
Ответ Флимма ниже решил проблему с медлительностью для меня. askubuntu.com/a/214968/107015
JS.

Ответы:

36

Я слышал, что это как-то связано с тем, что они удалили Unity 2D , или как-то переход на 3D Unity только замедляет производительность виртуальной машины из-за сильной зависимости от обработки ЦП в большей степени, чем раньше. Подкаст Linux Outlaws говорил об этом немного, но я забыл эпизод.

Обновление: проблема в гостевых дополнениях Virtualbox, не обеспечивающих 3D-ускорение в 12.10. См Ubuntu 12.10 не может использовать 3D-ускорение. Не в состоянии построить DRM .

Брет
источник
Я думаю о том же, потому что единственное различие между другими виртуальными ПК заключается в том, что существует только единство 3D ... и я не могу использовать 3D-ускорение, потому что мой процессор - старая модель без этой функции ... так Я возьму новый процессор :)
Джорджио
1
Я не думаю, что это точно - проблема заключается в отсутствии поддержки X Server 1.13 (от VirtualBox), а не Unity. Это важное различие, потому что его легко заменить Unity (например, на XFCE), но я не знаю, как понизить версию X Server по умолчанию.
Mzzzzzz
1
Почему вы говорите, что это проблема Х? Для меня возвращение к гному исправило это, например. Так что это была проблема замены Unity, а не X?
Нанн
@ marcopolo1010, Xubuntu 12.10 имеет XServer 1.13 и имеет хорошую производительность в VirtualBox (определенно намного быстрее, чем Ubuntu 12.10). Так что это должно быть проблемой Unity.
ignis
Кроме того, если вы работаете на Mac, вы можете попробовать увеличить количество процессоров, которые вы даете гостю. Это мне очень помогло! Вот откуда я взял этот источник: code.dimilow.com/ubuntu-12-10-slow-as-virtualbox-guest-os
Мэтт Вулф
281

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 эта проблема может быть решена автоматически или может потребоваться другой обходной путь.

  1. Установите VirtualBox Oracle VM VirtualBox Расширение пакета.
  2. Создайте экземпляр VirtualBox и установите на него Ubuntu 12.10.
  3. Установите некоторые необходимые пакеты для гостевых дополнений:

    sudo apt-get install linux-headers-$(uname -r) build-essential
    
  4. Установите гостевые дополнения, нажав «Устройства», «Установить гостевые дополнения» и выполнив эту команду из каталога компакт-диска:

    sudo ./VBoxLinuxAdditions.run
    
  5. Добавьте vboxvideoдрайвер к экземпляру, запустив:

    sudo bash -c 'echo vboxvideo >> /etc/modules'
    
  6. Завершите работу экземпляра VirtualBox.
  7. Откройте настройки экземпляра Virtualbox, перейдите к «Экрану» и установите флажок «Включить 3D-ускорение».
  8. Загрузите гостевую систему Ubuntu 12.10 и убедитесь, что 3D-ускорение работает, запустив:

    /usr/lib/nux/unity_support_test -p
    

Если кажется, что окна не отображаются , установите CompizConfig Settings Manager и отключите объект Framebuffer (FBO) в разделе OpenGL:

  1. Установите диспетчер параметров CompizConfig:

    sudo apt-get install compizconfig-settings-manager
    
  2. Запустите диспетчер параметров CompizConfig:

    ccsm
    
  3. Выберите раздел OpenGL, а затем снимите флажок «Объект Framebuffer». Если это решает проблему, это должно быть сразу видно. Перезагрузка не требуется.
Флимм
источник
28
Это отличное решение, и оно заслуживает нескольких голосов.
ζ--
4
На моей новой установке Ubuntu 12.10 (с использованием VirtualBox 4.2.4 на Mac OS X 10.6) это определенно ускорилось ... но с дисплеем есть много ошибок. Окна исчезают, панель запуска не появляется, если не открыта черта и т. Д.
Бенджамин Оукс
12
«Не программное обеспечение отображается» - это очень запутанное имя свойства: S
Адам Харт
2
@reprogrammer: у меня была такая же проблема. Попробуйте дополнительные пакеты из репозитория Ubuntu вместо последних, поставляемых с VirtualBox. Сделайте это, запустив: sudo apt-get remove virtualbox-guest-additions(это удаляет те, что вы установили) sudo apt-get install virtualbox-guest-additions(это устанавливает те из репозитория по умолчанию) Затем откройте дополнительные драйверы в настройках (или через программные источники> дополнительные драйверы в последних выпусках Ubuntu) и выберите очевидный ,
labsin
6
Я не мог заставить это работать с VirtualBox 4.3.12. Для меня решение для VirtualBox 4.3.12 состоит в том, чтобы установить новую версию GuestAdditions, как указано здесь: virtualbox.org/ticket/12941 В частности, virtualbox.org/download/testcase/…
Гордон Глас
7

Я не знаю о настройках графического интерфейса, необходимых для использования 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 и другим виртуальным гипервизорам. Это работает и для серверов.

Удачи.

JohnP
источник
2
Ссылка на блог, на которую вы ссылаетесь, предназначена для Ubuntu 12.04. Ubuntu 12.10 существенно отличается, потому что он больше не включает в себя Unity 2D, а обычный Unity рендерит поверх LLVMPipe, когда он не обнаруживает аппаратное ускорение.
Flimm
2
Мой гость на сервере Ubuntu стал намного быстрее после того, как я изменил видеопамять с ~ 8 МБ до 128 МБ. Я использую его для разработки Rails.
4

Я добился хороших результатов, вернувшись из Unity в резервный GNOME. Вы можете сделать это, просто установив GNOME-session-fallback из центра программного обеспечения, а затем выбрав его на экране входа в систему.

см. http://www.psychocats.net/ubuntu/classicgnome для получения подробных подробных инструкций.

Nanne
источник
В Ubuntu 16.04 имя пакета есть gnome-session-flashback. Это единственная вещь, которая, кажется, имеет значение для производительности пользовательского интерфейса для меня. Спасибо!
Мустафа,
1

Чтобы включить поддержку 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


источник