ทำไมแขก 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 หรือ distro อื่น ๆ แต่มีเพียง Ubuntu 12.10 เท่านั้นที่ทำสิ่งนี้ ... ในระหว่างการติดตั้ง การตั้งค่าเริ่มต้นเช่นเคย; อีก 2 เครื่องเสมือนทำงานได้ดี ...
Giorgio

2
คำตอบของ Flimm ด้านล่างแก้ไขปัญหาความช้าสำหรับฉัน askubuntu.com/a/214968/107015
JS

คำตอบ:


36

ฉันได้ยินมาว่ามีบางอย่างเกี่ยวข้องกับความจริงที่ว่าพวกเขาลบUnity 2Dออกไปหรืออย่างใดอย่างหนึ่งการเปลี่ยนเป็น 3D Unity จะทำให้ประสิทธิภาพ VM ช้าลงเนื่องจากการพึ่งพา CPU ในการจัดการที่หนักกว่าที่เคยเป็นมา ลินุกซ์โจรพอดคาสต์พูดคุยเกี่ยวกับมันนิด แต่ผมลืมเหตุการณ์ที่เกิดขึ้น

อัปเดต: ปัญหาเกิดขึ้นจาก Virtualbox Guest Additions ที่ไม่ได้ให้การเร่งความเร็วแบบ 3 มิติใน 12.10 ดูUbuntu 12.10 ไม่สามารถใช้การเร่งความเร็ว 3 มิติ ไม่สามารถสร้าง DRMได้


ฉันคิดในสิ่งเดียวกันเพราะความแตกต่างเพียงอย่างเดียวระหว่างพีซีแบบเสมือนอื่น ๆ นั่นคือมีเอกภาพ 3D เท่านั้น ... และฉันไม่สามารถใช้การเร่งความเร็ว 3D ได้เนื่องจาก CPU ของฉันเป็นรุ่นเก่าที่ไม่มีฟังก์ชันนี้ ... ดังนั้น ฉันจะเอาโพรเซสเซอร์ตัวใหม่ :)
จอร์โจ

1
ฉันไม่คิดว่ามันถูกต้อง - มันขาดการสนับสนุนสำหรับ X Server 1.13 (โดย VirtualBox) ไม่ใช่ Unity ที่ทำให้เกิดปัญหา มันเป็นความแตกต่างที่สำคัญเพราะมันง่ายที่จะแทนที่ Unity (เช่นกับ XFCE) แต่ฉันไม่รู้ว่าจะลดระดับรุ่นเริ่มต้นของ X Server ได้อย่างไร
Mzzzzzz

1
ทำไมคุณพูดว่ามันเป็นปัญหา X สำหรับฉันการย้อนกลับไปที่คำพังเพยแก้ไขได้เช่น มันเป็นปัญหาของการแทนที่ Unity แทนที่จะเป็น X?
Nanne

@ marcopolo1010, Xubuntu 12.10 มี XServer 1.13 และมีประสิทธิภาพที่ดีใน VirtualBox (เร็วกว่า Ubuntu 12.10 มาก) ดังนั้นมันจะต้องเป็นปัญหาความสามัคคี
Ignis

นอกจากนี้หากคุณใช้ mac คุณสามารถลองเพิ่ม # ของ CPU ที่คุณมอบให้กับแขก สิ่งนี้ช่วยฉันอย่างมาก! นี่คือที่ที่ฉันได้รับแหล่งที่มาของรหัสนี้: code.dimilow.com/ubuntu-12-10-slow-as-virtualbox-guest-os
Matt Wolfe

281

Ubuntu 12.10 ไม่รวม Unity 2D อีกต่อไปซึ่งถูกนำไปใช้กับแพลตฟอร์มที่ไม่สามารถเร่งความเร็ว 3D ได้ Ubuntu 12.10 นั้นใช้ Unity ภายใต้ LLVM แทนการสร้างรหัสสำหรับ GPU ที่ใช้งานบน CPU ช้ากว่าการใช้ GPU มาก

ในการตรวจสอบว่าผู้เยี่ยมชม Ubuntu 12.10 ของคุณใช้การเร่งความเร็ว 3 มิติหรือไม่ให้เรียกใช้คำสั่งนี้:

$ /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 แบบช้า

วิธีเปิดใช้งานการเร่งความเร็ว 3 มิติ (VirtualBox 4.2.x เท่านั้น)

คำแนะนำเหล่านี้มีไว้สำหรับ VirtualBox 4.2.4 หรือ 4.2.6 ติดตั้งจากเว็บไซต์ของ VirtualBox ไม่ใช่จาก repo ของ Ubuntu VirtualBox รุ่นอนาคตอาจแก้ไขปัญหานี้ได้โดยอัตโนมัติหรืออาจต้องใช้วิธีแก้ปัญหาอื่น

  1. ติดตั้ง VirtualBox Oracle VM VirtualBox Extension Pack
  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 ของคุณและตรวจสอบว่าการเร่งความเร็ว 3 มิติทำงานโดยการเรียกใช้:

    /usr/lib/nux/unity_support_test -p
    

หากหน้าต่างดูเหมือนจะdisppear , ติดตั้งตัวจัดการการตั้งค่าและปิดการใช้ CompizConfig Framebuffer วัตถุ (FBO) ในส่วน OpenGL:

  1. ติดตั้งตัวจัดการการตั้งค่า CompizConfig:

    sudo apt-get install compizconfig-settings-manager
    
  2. เรียกใช้ตัวจัดการการตั้งค่า CompizConfig:

    ccsm
    
  3. เลือกส่วน OpenGL จากนั้นยกเลิกการเลือกตัวเลือกวัตถุ Framebuffer หากวิธีนี้แก้ไขปัญหาได้ก็ควรปรากฏให้เห็นทันที ไม่จำเป็นต้องรีบูต

28
นี่คือการแก้ไขที่ดีและสมควรได้รับหลาย upvotes
ζ--

4
ในการติดตั้ง Ubuntu 12.10 ใหม่ของฉัน (โดยใช้ VirtualBox 4.2.4 บน Mac OS X 10.6) สิ่งนี้เร่งความเร็วขึ้นอย่างแน่นอน ... แต่มีข้อบกพร่องมากมายกับจอแสดงผล หน้าต่างหายไปตัวเรียกใช้งานจะไม่ปรากฏขึ้นเว้นแต่จะมีเส้นประเปิดอยู่เป็นต้น
Benjamin Oakes

12
"ไม่ใช่ซอฟต์แวร์ที่เรนเดอร์" เป็นชื่อคุณสมบัติที่สร้างความสับสนอย่างมาก: S
Adam Harte

2
@ โปรแกรมผู้เขียน: ฉันมีปัญหาเดียวกัน ลองแพ็คเกจเพิ่มเติมจาก repo ของ Ubuntu แทนแพ็คเกจล่าสุดที่มาพร้อมกับ VirtualBox ทำสิ่งนี้โดยการเรียกใช้: sudo apt-get remove virtualbox-guest-additions(สิ่งนี้จะลบสิ่งที่คุณติดตั้งไว้) sudo apt-get install virtualbox-guest-additions(สิ่งนี้จะติดตั้งสิ่งเหล่านั้นจาก repo ที่เป็นค่าเริ่มต้น) ถัดไปเปิดไดรเวอร์เพิ่มเติมในการตั้งค่า (หรือผ่านแหล่งซอฟต์แวร์> ไดรเวอร์เพิ่มเติมใน Ubuntu รุ่นล่าสุด) .
labsin

6
ฉันไม่สามารถใช้งานกับ VirtualBox 4.3.12 ได้ ทางออกสำหรับฉันสำหรับ VirtualBox 4.3.12 คือการติดตั้ง GuestAdditions รุ่นใหม่กว่าตามที่อ้างถึงที่นี่: virtualbox.org/ticket/12941โดยเฉพาะvirtualbox.org/download/testcase/ …
Gordon Glas

11

ดูเหมือนว่า VirtualBox นักพัฒนาซอฟแวร์กำลังทำงานในการแก้ปัญหา แต่ก็ยังไม่พร้อม - ดูโพสต์ฟอรั่มพูดคุย 4.2.4 ปล่อย

มีกระทู้ที่พูดถึงเรื่องนี้ในโพสต์สี่เมตรUbuntu 12.10 "จริง" ใช้ไม่ได้


7

ฉันไม่รู้เกี่ยวกับการตั้งค่า GUI ที่จำเป็นในการทำให้ Unity สามารถใช้งานได้ใน VM แต่ฉันรู้วิธีปรับแต่ง VMs ภายใต้ virtualbox, KVM และอื่น ๆ ฉันไม่เคยโชคดีที่ทำให้ Unity ทำงานได้ดีในสภาพแวดล้อมเสมือนใด ๆ ไม่เคยลองยากเกินไปเลือกใช้ WM อย่างแท้จริงหรือ DE ที่ใช้ LXDE

การตั้งค่ารายละเอียดเพิ่มเติมอยู่ที่นี่: http://blog.jdpfu.com/2012/09/14/solution-for-slow-ubuntu-in-virtualbox

สรุป:

  • ค่าเริ่มต้นของ Vbox นั้นไม่ดีสำหรับ Ubuntu ที่ออกเช่น GPU จริง
  • สำหรับการหมุน HDD ให้จัดสรรดิสก์เสมือนทั้งหมดล่วงหน้า สำหรับ SSD นั้นไม่สำคัญ
  • จัดสรรที่เก็บข้อมูลที่คุณต้องการเท่านั้น เก็บไฟล์ขนาดใหญ่ไว้ที่อื่นนอก vStorage
  • อย่าจัดสรร CPU หรือ RAM มากเกินกว่าที่ควรจะเป็น 1 vCPUน่าจะเพียงพอ
  • ปล่อยให้ RAM 1GB สำหรับ HostOS อย่าส่ง RAM เกินตัว
  • ใช้ไดรเวอร์ VirtIOสำหรับการจัดเก็บและระบบเครือข่าย ผู้เข้าร่วม Modern Linux สนับสนุนสิ่งนี้
  • สำหรับแขกของ Windows ให้ใช้ไดรเวอร์ SATA (ที่เก็บข้อมูล) และ Intel PRO / 1000 (เครือข่าย) เป็นไปได้ที่จะใช้ไดรเวอร์ virtio ภายใต้ Windows มันเป็นเพียงเล็กน้อยที่ยากขึ้น
  • เปิดใช้งาน ACPI และ AHCI สำหรับแขกทุกคนตั้งแต่ปี 2003, WinXP และใหม่กว่า
  • Desktop VMs ควรได้รับ vRAM แสดงผลทั้งหมด 128MB
  • เซิร์ฟเวอร์ VM ควรมีขนาด 9MB เป็น vRAM ไม่ต้องเสียมัน
  • หลีกเลี่ยงการตั้งค่าเร่งแบบ 2D และ 3D จนกว่าคุณจะมีทุกอย่างที่คุณต้องการ Ubuntu / Unity ทำสิ่งที่ไม่ดีเมื่อเปิดใช้งาน มันสามารถนำ Core i7 มาสู่พื้นได้

มีเคล็ดลับประสิทธิภาพ GUI มากมายในคำตอบอื่น ๆ นั่นอาจจะใช้ได้เช่นกัน เคล็ดลับเดียวกันนี้นำไปใช้กับ KVM, VM-Player และ virtual-hypervisors อื่น ๆ สิ่งเหล่านี้ใช้ได้กับเซิร์ฟเวอร์ด้วย

โชคดี.


2
โพสต์บล็อกที่คุณลิงก์ไปนั้นสำหรับ Ubuntu 12.04 Ubuntu 12.10 มีความแตกต่างอย่างมีนัยสำคัญเนื่องจากไม่มี Unity 2D และ Unity แบบปกติจะแสดงผลมากกว่า LLVMPipe เมื่อไม่พบการเร่งด้วยฮาร์ดแวร์
Flimm

2
แขกของ Ubuntu Server ของฉันเร็วขึ้นมากหลังจากฉันเปลี่ยนหน่วยความจำวิดีโอจาก ~ 8MB เป็น 128MB ฉันใช้มันเพื่อการพัฒนา Rails

4

ฉันได้ผลลัพธ์ที่ดีด้วยการย้ายกลับจาก Unity มาที่ GNOME ทางเลือก คุณสามารถทำได้โดยติดตั้ง GNOME-session-fallback จากศูนย์ซอฟต์แวร์จากนั้นเลือกบนหน้าจอเข้าสู่ระบบ

ดู: http://www.psychocats.net/ubuntu/classicgnomeสำหรับรายละเอียดวิธีการแบบสุ่ม


ใน Ubuntu 16.04 gnome-session-flashbackชื่อแพคเกจคือ นี่เป็นสิ่งเดียวที่ดูเหมือนจะสร้างความแตกต่างในการแสดงของ UI สำหรับฉัน ขอบคุณ!
มุสตาฟา

1

ในการเปิดใช้งานรองรับ 3D คุณต้องมีการอัปเดตส่วนหัวของลินุกซ์

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

ตอนนี้ใส่ isual guest 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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.