Чому гість 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 віртуальні машини працюють чудово ...
Giorgio

2
Відповідь Флімма нижче вирішила питання повільності для мене. askubuntu.com/a/214968/107015
JS.

Відповіді:


36

Я чув, що це має щось спільне з тим, що вони видалили Unity 2D , або якимось чином перехід на 3D Unity лише уповільнює продуктивність VM через велику залежність від обробки процесора більше, ніж раніше. Подкаст Linux Outlaws говорив про це трохи, але я забув епізод.

Оновлення. Проблема полягає у тому, що Virtualbox Guest Additions не забезпечують прискорення 3D в 12.10. Див. Ubuntu 12.10, не в змозі використовувати 3D-прискорення. Не вдалося створити DRM .


Я думаю про те саме, тому що єдиною відмінністю між іншими Віртуальними ПК є те, що існує лише єдність 3D ... і я не можу використовувати прискорення 3D, оскільки мій процесор - стара модель без цієї функції ... так , Я візьму новий процесор :)
Giorgio

1
Я не думаю, що це точно - це відсутність підтримки для X Server 1.13 (від VirtualBox), а не Unity, що викликає проблему. Це важлива відмінність, тому що легко замінити Unity (наприклад, на XFCE), але я не знаю, як знизити версію X Server за замовчуванням.
Mzzzzzz

1
Чому ти кажеш, що це проблема X? Для мене, наприклад, повернення до gnome виправило це, наприклад. Отже, це була проблема заміни Єдності, а не X?
Нанна

@ marcopolo1010, Xubuntu 12.10 має XServer 1.13 і має хороші показники в VirtualBox (безумовно, набагато швидше, ніж Ubuntu 12.10). Отже, це має бути питання Єдності.
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, завдяки чому код, призначений для GPU, працює на процесорі. Це набагато повільніше, ніж використання GPU.

Щоб перевірити, чи використовує ваш гість 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. Встановіть додатки для гостей, натиснувши Пристрої, Встановіть додатки для гостей та запустивши цю команду з каталогу CD-ROM:

    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 та відключіть об’єкт Framebuffer (FBO) у розділі OpenGL:

  1. Встановіть менеджер налаштувань CompizConfig:

    sudo apt-get install compizconfig-settings-manager
    
  2. Запустіть менеджер налаштувань CompizConfig:

    ccsm
    
  3. Виберіть розділ OpenGL та зніміть прапорець біля об'єкта Framebuffer Object. Якщо це вирішує проблему, її слід негайно помітити. Перезавантаження не потрібно.

28
Це чудова помилка та заслуговує на кілька оновлень.
ζ--

4
У моєму новому встановленні Ubuntu 12.10 (за допомогою VirtualBox 4.2.4 на Mac OS X 10.6) це безумовно прискорило справи ... але помилок з дисплеєм є багато. Windows зникає, пускова установка не з’являється, якщо тире не відкрито і т. Д.
Бенджамін Оукс

12
"Не надане програмне забезпечення" - дуже заплутане ім'я властивості: S
Adam Harte

2
@reprogrammer: У мене була така ж проблема. Спробуйте додаткові пакети від repo Ubuntu замість останніх, що постачаються з VirtualBox. Зробіть це, запустивши: sudo apt-get remove virtualbox-guest-additions(це видаляє встановлені вами) sudo apt-get install virtualbox-guest-additions(це встановлює встановлені з репо за замовчуванням) Далі відкрийте додаткові драйвери в налаштуваннях (або через джерела програмного забезпечення> додаткові драйвери в останніх випусках Ubuntu) і виберіть очевидний .
лабораторія

6
Я не зміг змусити це працювати з VirtualBox 4.3.12. Для мене для VirtualBox 4.3.12 вирішується встановити новішу версію GuestAdditions, на яку посилається тут: virtualbox.org/ticket/12941, зокрема, virtualbox.org/download/testcase/…
Gordon Glas


7

Я не знаю про налаштування графічного інтерфейсу, необхідні для того, щоб Unity використовувався в VM, але я знаю, як налаштувати VM під virtualbox, KVM та ін. Мені ніколи не пощастило змусити Unity добре працювати в будь-якому віртуальному середовищі. Ніколи не намагався надто сильно, вважаючи за краще використовувати чистий WM або DE на основі LXDE.

Більш детальні налаштування тут: http://blog.jdpfu.com/2012/09/14/solution-for-slow-ubuntu-in-virtualbox

Підсумок:

  • За замовчуванням Vbox не підходить для релізів Ubuntu, які подобаються справжньому графічному процесору.
  • На спінінг жорстких дисків попередньо виділіть весь віртуальний диск. На SSD це не має значення.
  • Виділіть лише потрібне сховище. Зберігайте великі файли в іншому місці, поза vStorage.
  • Ніколи не виділяйте більше процесорів або оперативної пам’яті, ніж слід. 1 vCPU , мабуть, достатньо.
  • Залиште 1 Гб оперативної пам’яті для HostOS. Не займіться оперативною пам'яттю.
  • Використовуйте драйвери VirtIO для зберігання та роботи в мережі. Сучасні гості Linux підтримують це.
  • Для гостей Windows використовуйте драйвери SATA (накопичувач) та Intel PRO / 1000 (мережа). Використовувати драйвери virtio під Windows можна, просто трохи складніше.
  • Увімкніть ACPI та AHCI для всіх гостей з 2003 року, WinXP та пізніших версій.
  • Настільні віртуальні віртуальні машини повинні отримати всі 128MB дисплея vRAM
  • Серверні віртуальні машини повинні залишатися з 9 Мб vRAM; не витрачайте його.
  • Уникайте налаштувань 2D та 3D акселерації, поки у вас все не буде працювати так, як вам подобається. Ubuntu / Unity робить погані речі, коли це ввімкнено. Це може принести Core i7 до основи.

В інших відповідях є багато підказок щодо ефективності графічного інтерфейсу. Вони, ймовірно, також дійсні. Ці самі поради стосуються KVM, VM-програвача та інших віртуальних гіпервізорів. Вони працюють і для серверів.

Удачі.


2
Повідомлення в блозі, з яким ви пов’язані, призначене для Ubuntu 12.04. Ubuntu 12.10 істотно відрізняється, оскільки він більше не включає Unity 2D, і звичайний Unity надає LLVMPipe, коли він не виявляє апаратне прискорення.
Flimm

2
Мій гість Ubuntu Server став набагато швидшим, коли я змінив відеопам'ять з ~ 8MB на 128MB. Я використовую його для розробки Rails.

4

Я мав хороші результати, повернувшись з Unity до запасного GNOME. Для цього можна просто встановити GNOME-сеанс-запас із програмного центру, а потім вибрати його на екрані входу.

Дивіться: 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

Тепер вставляйте гості iso vitualbox з пристроїв і встановлюйте вручну

$ cd /media
$ ls
$ cd username
$ ls
$ cd VBOX*
$ ls
$ sudo ./VBoxLinuxAdditions.run

Вставте vboxvideo в / etc / модулі

$ 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 у віртуальній скрипті

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.