Tại sao một khách Ubuntu trong VirtualBox chạy rất, rất chậm?


176

Tôi hiện đang sử dụng Ubuntu 12.04 LTS làm máy chủ và tôi đã ảo hóa ba máy:

  • một khách Xubfox 12.04
  • một khách Windows 7
  • một khách Ubuntu 12.10

Tất cả khách có cùng cài đặt mặc định VirtualBox, nhưng Ubuntu 12.10 chậm hơn!

Quá trình cài đặt mất 1h 40 phút! (Thông thường, phải mất 40 phút.) Bây giờ không thể sử dụng nó, và tất cả các hoạt động đều rất, rất chậm.

Tôi đang sử dụng VirtualBox phiên bản 4.2.4.

Có ý kiến ​​gì không?

Tại sao nó chậm? Và làm thế nào tôi có thể làm cho nó nhanh hơn?


Bạn đã thử lộn xộn với các cấu hình? Bạn đã thử cài đặt phiên bản khách?
usr12390

Có, tôi đã cài đặt các bổ sung dành cho khách, nhưng dường như không có gì thay đổi ... điều kỳ lạ là tôi đã cài đặt nhiều máy ảo với ubfox hoặc bản phân phối khác nhưng chỉ Ubuntu 12.10 mới thực hiện được điều này ... trong quá trình cài đặt, tôi đã để lại tất cả thiết lập theo mặc định, như mọi khi; 2 máy ảo khác hoạt động tốt ...
Giorgio

2
Câu trả lời của Flimm dưới đây đã khắc phục vấn đề chậm chạp cho tôi. Askubfox.com/a/214968/107015
JS.

Câu trả lời:


36

Tôi đã nghe nói nó có liên quan đến thực tế là họ đã loại bỏ Unity 2D , hoặc bằng cách nào đó, việc chuyển sang 3D Unity chỉ làm chậm hiệu suất VM do sự phụ thuộc nặng nề vào CPU xử lý nhiều hơn trước đây. Các Linux Outlaws podcast nói về nó một chút, nhưng tôi quên tập.

Cập nhật: Vấn đề là với Virtualbox Guest Additions không cung cấp khả năng tăng tốc 3D trong 12.10. Xem Ubuntu 12.10 không thể sử dụng tăng tốc 3D. Thất bại trong việc xây dựng DRM .


Tôi cũng nghĩ giống như vậy, bởi vì sự khác biệt duy nhất giữa các PC ảo khác, đó là chỉ có sự thống nhất 3D ... và tôi không thể sử dụng khả năng tăng tốc 3D vì CPU của tôi là một mô hình cũ không có chức năng này ... vì vậy , Tôi sẽ có một Bộ xử lý người mới :)
Giorgio

1
Tôi không nghĩ điều này là chính xác - nó thiếu hỗ trợ cho X Server 1.13 (bởi VirtualBox), không phải Unity gây ra sự cố. Đây là một điểm khác biệt quan trọng vì dễ dàng thay thế Unity (ví dụ: bằng XFCE), nhưng tôi không biết cách hạ cấp phiên bản mặc định của X Server.
Mzzzzzz

1
Tại sao bạn nói đó là một vấn đề X? Đối với tôi, rơi trở lại gnome đã sửa nó chẳng hạn. Vậy đó là vấn đề thay thế Unity, thay vì X?
Nanne

@ marcopolo1010, Xubfox 12.10 có XServer 1.13 và có hiệu suất tốt trong VirtualBox (chắc chắn nhanh hơn nhiều so với Ubuntu 12.10). Vì vậy, nó phải là một vấn đề Unity.
ignis

Ngoài ra, nếu bạn đang sử dụng máy Mac, bạn có thể thử tăng số CPU mà bạn cung cấp cho khách. Điều này đã giúp tôi rất nhiều! Đây là nơi tôi có nguồn cho việc này: code.dimilow.com/ubfox-12-10-slow-as-virtualbox-guest-os
Matt Wolfe

281

Ubuntu 12.10 không còn bao gồm Unity 2D , được triển khai cho các nền tảng không thể cung cấp khả năng tăng tốc 3D. Thay vào đó, Ubuntu 12.10 có Unity chạy theo LLVM, tạo mã dành cho GPU chạy trên CPU. Nó chậm hơn nhiều so với sử dụng GPU.

Để kiểm tra xem khách Ubuntu 12.10 của bạn có đang sử dụng tăng tốc 3D hay không, hãy chạy lệnh này:

$ /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

Như bạn có thể thấy, "Không phải phần mềm được kết xuất" và "Unity 3D được hỗ trợ" đều trả về "không" trong ví dụ này, điều đó có nghĩa là Unity đang sử dụng LLVMpipe chậm.

Cách bật tăng tốc 3D (chỉ VirtualBox 4.2.x)

Các hướng dẫn này dành cho VirtualBox 4.2.4 hoặc 4.2.6, được cài đặt từ trang web của VirtualBox, không phải từ repo của Ubuntu. Các phiên bản tương lai của VirtualBox có thể tự động khắc phục sự cố này hoặc có thể cần một cách giải quyết khác.

  1. Cài đặt gói mở rộng VirtualBox Oracle VM VirtualBox.
  2. Tạo một cá thể VirtualBox và cài đặt Ubuntu 12.10 trên nó.
  3. Cài đặt một số gói cần thiết cho các bổ sung của khách:

    sudo apt-get install linux-headers-$(uname -r) build-essential
    
  4. Cài đặt bổ sung khách bằng cách nhấp vào Thiết bị, Cài đặt Bổ sung khách và chạy lệnh này từ thư mục của CD-ROM:

    sudo ./VBoxLinuxAdditions.run
    
  5. Thêm vboxvideotrình điều khiển vào ví dụ bằng cách chạy:

    sudo bash -c 'echo vboxvideo >> /etc/modules'
    
  6. Tắt phiên bản VirtualBox.
  7. Mở cài đặt của phiên bản Virtualbox, điều hướng đến "Hiển thị" và đánh dấu vào "Bật tăng tốc 3D".
  8. Khởi động máy khách Ubuntu 12.10 của bạn và kiểm tra xem khả năng tăng tốc 3D có hoạt động không bằng cách chạy:

    /usr/lib/nux/unity_support_test -p
    

Nếu các cửa sổ dường như không hoạt động , hãy cài đặt Trình quản lý cài đặt CompizConfig và tắt Đối tượng Framebuffer (FBO) trong phần OpenGL:

  1. Cài đặt Trình quản lý cài đặt CompizConfig:

    sudo apt-get install compizconfig-settings-manager
    
  2. Chạy Trình quản lý cài đặt CompizConfig:

    ccsm
    
  3. Chọn phần OpenGL và sau đó bỏ chọn tùy chọn Framebuffer Object. Nếu điều này khắc phục vấn đề thì nó sẽ được hiển thị ngay lập tức. Không cần khởi động lại.

28
Đây là một sửa chữa tuyệt vời, và xứng đáng nhiều upvote.
ζ--

4
Trên bản cài đặt Ubuntu 12.10 mới của tôi (sử dụng VirtualBox 4.2.4 trên Mac OS X 10.6), điều này chắc chắn đã tăng tốc mọi thứ ... nhưng có rất nhiều lỗi với màn hình. Windows biến mất, trình khởi chạy không hiển thị trừ khi dấu gạch ngang được mở, v.v.
Benjamin Oakes

12
"Không phải phần mềm được kết xuất" là một tên thuộc tính rất khó hiểu: S
Adam Harte

2
@reprogrammer: Mình gặp vấn đề tương tự. Hãy thử các gói bổ sung từ repo của Ubuntu thay vì các gói mới nhất đi kèm với VirtualBox. Thực hiện việc này bằng cách chạy: sudo apt-get remove virtualbox-guest-additions(thao tác này sẽ xóa những cái bạn đã cài đặt) sudo apt-get install virtualbox-guest-additions(cái này sẽ cài đặt những cái từ repo mặc định) Tiếp theo mở trình điều khiển bổ sung trong cài đặt (hoặc thông qua các nguồn phần mềm> trình điều khiển bổ sung trên các bản phát hành mới nhất của Ubuntu) và chọn một trình điều khiển rõ ràng .
labsin

6
Tôi không thể làm điều này để làm việc với VirtualBox 4.3.12. Giải pháp cho tôi đối với VirtualBox 4.3.12 là cài đặt phiên bản GuestAdditions mới hơn như được tham chiếu tại đây: virtualbox.org/ticket/12941 Cụ thể, virtualbox.org/doad/testcase/ trộm
Gordon Graffiti


7

Tôi không biết về các cài đặt GUI cần thiết để giúp Unity có thể sử dụng được trong VM, nhưng tôi biết cách điều chỉnh VM trong hộp ảo, KVM và các thiết bị khác. Tôi chưa bao giờ gặp may mắn khi Unity hoạt động tốt trong mọi môi trường ảo. Không bao giờ cố gắng quá nhiều, thích sử dụng DE thuần túy hoặc DE dựa trên LXDE.

Các cài đặt chi tiết hơn có tại đây: http://blog.jdpfu.com/2012/09/14/solution-for-slow-ubfox-in-virtualbox

Tóm lược:

  • Mặc định của Vbox không tốt cho các bản phát hành Ubuntu giống như GPU thực.
  • Khi quay ổ cứng, phân bổ trước toàn bộ đĩa ảo. Trên SSD, nó không thành vấn đề.
  • Chỉ phân bổ lưu trữ bạn cần. Giữ các tệp lớn ở nơi khác, bên ngoài vStorage.
  • Không bao giờ phân bổ nhiều CPU hoặc RAM hơn bạn nên. 1 vCPU có lẽ là đủ.
  • Để lại 1GB RAM cho HostOS. Đừng quá cam kết RAM.
  • Sử dụng trình điều khiển VirtIO cho Lưu trữ và Mạng. Khách Linux hiện đại hỗ trợ này.
  • Đối với khách Windows, sử dụng trình điều khiển SATA (lưu trữ) và Intel PRO / 1000 (mạng). Có thể sử dụng trình điều khiển virtio trong Windows, nó chỉ khó hơn một chút.
  • Kích hoạt ACPI và AHCI cho tất cả khách từ năm 2003, WinXP trở lên.
  • Máy tính để bàn sẽ nhận được tất cả 128 MB vRAM hiển thị
  • Máy chủ VM nên ở lại với 9MB vRAM; đừng lãng phí nó
  • Tránh cài đặt accel 2D và 3D, cho đến khi bạn có mọi thứ khác hoạt động theo cách bạn muốn. Ubuntu / Unity làm những điều xấu khi điều này được kích hoạt. Nó có thể mang Core i7 xuống đất.

Có rất nhiều lời khuyên về hiệu suất GUI trong các câu trả lời khác. Những cái đó có lẽ cũng hợp lệ. Những mẹo tương tự này áp dụng cho KVM, VM-Player và các trình ảo hóa ảo khác. Chúng cũng hoạt động cho các máy chủ.

Chúc may mắn.


2
Bài đăng blog bạn liên kết đến là dành cho Ubuntu 12.04. Ubuntu 12.10 khác biệt đáng kể, vì nó không còn bao gồm Unity 2D và Unity bình thường sẽ hiển thị trên LLVMPipe khi nó không phát hiện gia tốc phần cứng.
Flimm

2
Máy khách Ubuntu Server của tôi trở nên nhanh hơn nhiều sau khi tôi thay đổi bộ nhớ video từ ~ 8MB thành 128MB. Tôi sử dụng nó để phát triển Rails.

4

Tôi đã có kết quả tốt bằng cách chuyển trở lại từ Unity sang dự phòng Gnome. Bạn có thể làm điều này bằng cách chỉ cần cài đặt dự phòng Gnome từ trung tâm phần mềm và sau đó chọn nó trên màn hình đăng nhập.

xem: http://www.psychocats.net/ubfox/ classicgnome để biết cách chi tiết ngẫu nhiên


Trong Ubuntu 16.04 tên gói là gnome-session-flashback. Đây là điều duy nhất dường như tạo ra sự khác biệt trong hiệu suất ui đối với tôi. cảm ơn!
Mustafa

1

Để bật 3D được hỗ trợ, bạn sẽ cần cập nhật tiêu đề linux

$ uname -r
$ sudo apt-get install linux-headers-$(uname -r)
$ sudo apt-get autoremove
$ sudo apt-get install build-essential

Bây giờ chèn iso vitualbox khách từ các thiết bị và để cài đặt thủ công

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

Chèn vboxvideo vào / etc / mô-đun

$ sudo nano /etc/modules

Thêm vboxvideo vào cuối tập tin

loop
lp
vboxvideo

Khởi động lại máy

$ sudo reboot

Kiểm tra phần mềm Không phải phần mềm được kết xuất và các phần mềm hỗ trợ 3D của Unity và 3D có được kích hoạt hay không sau khi khởi động lại

$ /usr/lib/nux/unity_support_test -p

Điều tiếp theo bạn muốn làm là tăng bộ nhớ video. Tìm tập tin .vbox

$ nano /home/username/VirtualBox VMs/ubuntu/ubuntu.vbox

Thay thế

<Display VRAMSize="128" monitorCount="1" accelerate3D="true" accelerate2DVideo="false"/>

Đến

<Display VRAMSize="256" monitorCount="1" accelerate3D="true" accelerate2DVideo="false"/>

nguồn: Cách khắc phục hiệu năng chậm ub Ubuntu 13.04 chạy trong hộp ảo

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.