Почему гость 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 и другим виртуальным гипервизорам. Это работает и для серверов.

Удачи.


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 для получения подробных подробных инструкций.


В 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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.