จะลดการใช้งาน CPU ได้อย่างไรเมื่อใช้งาน Virtual Box


12

ฉันกำลังประสบปัญหากับการใช้งาน CPU 100% ภายใต้ระบบของฉันเมื่อใช้งาน VirtualBox นี่คือรายละเอียดเพิ่มเติมบางส่วน:

ข้อมูลระบบของฉัน:

ชื่อ CPU 1: Intel Pentium (R) Dual CPU T2310 @ 1.46GHz ขนาด
CPU 1 ระดับ 1 แคช: 32K Data cache แคชคำสั่ง 32K

ขนาดแคช CPU 1 ระดับ 2: 1024K แคชรวม
CPU 1 Mips: 2926.20
ชื่อ CPU 2: Intel (R) Pentium (R) Dual CPU T2310 @ 1.46GHz
CPU 2 ระดับ 1 ขนาดแคช: 32K Data cache แคชคำสั่ง 32K

ขนาดแคช CPU 2 ระดับ 2:แคชแคช 1024K

CPU 2 Mips: 2925.96
CPU 64 บิต? ใช่
หน่วยความจำทั้งหมด: 2.0 GB การ
แลกเปลี่ยนทั้งหมด: 6141 MBytes


ข้อมูลระบบปฏิบัติการของฉัน:

รุ่น Kubuntu OS: 11.04
เวอร์ชั่นเคอร์เนล: 2.6.38-8-
arch เคอร์เนลทั่วไป: i686
เชลล์เริ่มต้น: / bin / bash


การตั้งค่ากล่องเสมือนของฉัน:

ประเภท OS:
หน่วยความจำวิดีโอ Windows XP : 32 MB การ
เร่งความเร็ว:
หน่วยความจำพื้นฐาน 3D : 512 MB

รายละเอียดปัญหา:

ทุกครั้งที่ฉันรัน Windows XP จาก VirtualBox ฉันจะเห็นการใช้งาน CPU เกือบ 100% ฉันพบระบบช้าแม้ว่าจะไม่มีโปรแกรมใดทำงานบน Windows XP รุ่นโฮสต์ของฉัน

ฉันสงสัยว่าจะมีวิธีให้ฉันเล่นกับการตั้งค่าหรือไม่เพื่อให้ฉันสามารถปรับปรุงประสิทธิภาพได้เล็กน้อย พีซีของฉันค่อนข้างเร็วภายใต้ระบบปฏิบัติการ Linux ของฉัน ฉันจำเป็นต้องรู้ว่ามีเคล็ดลับบางอย่างที่ฉันอาจปฏิบัติตามเมื่อตั้งค่าการตั้งค่าของ VirtualBox ของฉันเพื่อให้ฉันสามารถบรรลุผลลัพธ์ที่ดีกว่า

ข้อเสนอแนะ / ความคิดใด ๆ ที่ชื่นชมอย่างมาก!


ดังนั้นคุณหมายถึง VM ของคุณทำงานช้าหรือระบบของคุณโดยสิ้นเชิง? ซีพียูที่คุณมีคือค่อนข้างอ่อนแอ - ดังนั้นฉันจะไม่สงสัยว่าจะได้รับถึง 100% เมื่อคุณเรียก VMs
slhck

CPU ช้า แต่ฉันใช้ XP บน SUSE host บน Athlon XP 2800+ โดยไม่มีปัญหาและ RAM 2 GIB และระบบนี้เร็วกว่าของฉันหลายเท่า มันควรจะสามารถเรียกใช้ VirtualBox และ XP อย่างเป็นกลางโดยไม่มีปัญหา +1 สำหรับรายการที่ดีของข้อกำหนดคอมพิวเตอร์ที่เกี่ยวข้อง
AndrejaKo

ฉันประสบปัญหาเดียวกันภายใต้ระบบปฏิบัติการหลายระบบบนคอมพิวเตอร์เครื่องเดียวกัน ก่อนหน้านี้ฉันใช้ Linux Mint, Ubuntu, Slax, Fedora และทั้งหมดดูเหมือนว่าฉันกำลังเผชิญปัญหาที่คล้ายกันกับการใช้งาน CPU อย่างไรก็ตามฉันเชื่อว่าฉันสามารถ "ปรับ" การตั้งค่า VM ของฉันได้อย่างถูกต้องฉัน "" อาจ "สามารถปรับปรุงประสิทธิภาพได้เล็กน้อย
CompilingCyborg

โซลูชันชั่วคราวที่ฉันใช้ในขณะนี้คือลูปไม่สิ้นสุดที่รันคำสั่ง bash เพื่อเพิ่ม pagecache, dentries และ inodes ทุก ๆ 10 วินาที VM ของฉันสามารถหายใจได้เล็กน้อยหลังจากที่ฉันคิดว่าจะใช้เทคนิคประหลาดนี้ถึงแม้ว่ามันจะไม่ใช่วิธีที่เหมาะสมในการทำ แต่แทนที่จะเป็น "แฮ็ค"
CompilingCyborg

1
น่าเสียดายที่ T2310 ยังไม่มีส่วนขยาย Virtualization VT-x ( ark.intel.com/Product.aspx?id=32431 ) และด้วยเหตุนี้ Virtualbox จะใช้ซอฟต์แวร์เพื่อตรวจจับการเรียกซีพียูสิทธิพิเศษทั้งหมดที่แขกจะได้รับซึ่งจะหมายถึง Virtualbox นั้นจะใช้พลังงาน CPU มากขึ้นเพื่อรองรับแขกระบบปฏิบัติการ นอกจากนี้ฉันอยากรู้ว่าการให้ RAM 1GB แก่ผู้ใช้ระบบปฏิบัติการอาจช่วยให้มันใช้งานได้ดีขึ้นหรือไม่เพราะไม่จำเป็นต้องทำการ
Virtual page

คำตอบ:


5

อธิบายเพิ่มเติมเกี่ยวกับความคิดเห็นของฉันเหนือ T2310 ที่ไม่มีส่วนขยาย Virtualization (VT-x) ตามแผ่นข้อมูล CPU ของคุณที่http://ark.intel.com/Product.aspx?id=32431

จากบทความ Wikipediaมีสามสิ่งพื้นฐานที่จะทำให้ประสิทธิภาพการทำงานของ VM ลดลง (และการเพิ่มขึ้นของการใช้ CPU ในโฮสต์:

  • การแปลแบบไบนารีใช้เพื่อเขียนคำสั่งบางอย่างเช่น POPF ซึ่งอาจล้มเหลวอย่างเงียบ ๆ หรือทำงานแตกต่างกันเมื่อดำเนินการเหนือวงแหวน 0 ทำให้การจำลองเสมือนแบบแทร็บและเลียนแบบเป็นไปไม่ได้ เพื่อปรับปรุงประสิทธิภาพบล็อกพื้นฐานที่แปลแล้วจะต้องถูกแคชในลักษณะที่สอดคล้องกันซึ่งตรวจจับการแก้ไขโค้ด (ใช้ใน VxD เป็นต้น) การใช้ซ้ำหน้าเพจโดย guest OS หรือแม้แต่การแก้ไขโค้ดด้วยตนเอง

  • จำนวนของโครงสร้างข้อมูลที่สำคัญที่ใช้โดยหน่วยประมวลผลจะต้องมีเงา เนื่องจากระบบปฏิบัติการส่วนใหญ่ใช้หน่วยความจำเสมือนแบบทำเพจและการอนุญาตให้ผู้เยี่ยมชม OS โดยตรงเข้าถึง MMU จะหมายถึงการสูญเสียการควบคุมโดยผู้จัดการการจำลองเสมือนงานบางส่วนของ x86 MMU จำเป็นต้องทำซ้ำในซอฟต์แวร์สำหรับแขกระบบปฏิบัติการโดยใช้เทคนิค เรียกว่าตารางหน้าเงา สิ่งนี้เกี่ยวข้องกับการปฏิเสธเกสต์เกสต์ใด ๆ ในการเข้าถึงรายการตารางหน้าจริงโดยการวางความพยายามในการเข้าถึงและเลียนแบบพวกเขาแทนในซอฟต์แวร์

  • การจำลองอุปกรณ์ I / O: อุปกรณ์ที่ไม่รองรับบน guest OS จะต้องจำลองโดยอุปกรณ์จำลองที่ทำงานในโฮสต์ OS

ระบบปฏิบัติการของแขกมีการได้ยินจำนวนมากสำหรับการดำเนินการที่ต้องการการใช้คำแนะนำพิเศษที่จำเป็นและโดยทั่วไปค่าโสหุ้ยเหล่านี้จะลดลงอย่างมากจากการใช้ Intels VT-x และ AMD-V ของ AMD virtualisation ส่วนขยาย โปรเซสเซอร์ของคุณไม่มีส่วนขยายเหล่านี้ดังนั้นการจับภาพและการจำลองทั้งหมดจะทำให้ประสิทธิภาพลดลง

การแนะนำของฉันจะเป็น:

  • ในการให้หน่วยความจำเสมือนเครื่องให้มากที่สุดเท่าที่จำเป็นต้องลดจำนวนของการเพจที่ต้องทำอาจจะ 1GB หรือมากกว่านั้นขึ้นอยู่กับปริมาณงานของคุณ

  • ปิดการใช้งานการเร่งความเร็ว 3 มิติเนื่องจากการเรียกไปยังไดรเวอร์ 3D ทั้งหมดอาจต้องผลักผ่านเลเยอร์การจำลองและอาจมีราคาแพงในโปรเซสเซอร์ของคุณ

  • ติดตั้ง Virtualbox Guest Additions สำหรับระบบปฏิบัติการ guest ของคุณเนื่องจากจะใช้ไดรเวอร์ที่รองรับสภาพแวดล้อมเสมือนได้ดียิ่งขึ้น

  • ลดความละเอียดหน้าจอและตัวเลือกกราฟิกในระบบปฏิบัติการแขกของคุณ

  • ให้การเข้าถึงเครือข่าย (อินเทอร์เน็ต) ในระดับที่เหมาะสมเครื่องเสมือนที่เชื่อมต่อเครือข่ายอย่างหนักมีราคาแพงแม้จะใช้ VT-x และได้รับประโยชน์จาก VT-d (เทคโนโลยีการจำลองเสมือนสำหรับ Directed I / O) เช่นกันซึ่งโปรเซสเซอร์ของคุณก็ไม่รองรับเช่นกัน


2

คำตอบของฉันเกี่ยวข้องกับชื่อคำถามเท่านั้นไม่ใช่ข้อความอื่น ๆ ของคำถาม ความสำคัญของฉันคือการใช้งาน CPU ว่างกับแขกเสมือนมากขึ้น: (หน่วยความจำว่างบนโฮสต์)

การใช้ CPU ที่เกิดจากaudiodg.exeกระบวนการบนโฮสต์ Windows เมื่อใช้งาน VirtualBox จะสูงกว่าภาระของแขกตัวเอง สามารถลดหรือหลุดออกได้อย่างง่ายดายโดยการปิดการใช้งานช่องทำเครื่องหมายเสียงในการตั้งค่าของผู้เยี่ยมชม Virtualbox บนแท็บเสียง (สามารถปิดการใช้งานได้เฉพาะในเครื่องที่ปิด.)

กระบวนการ audiodg.exe ใช้ซีพียูประมาณ 5% ต่อแขกหนึ่งคน แต่มันเป็นภาระสำคัญในแล็ปท็อปในช่วงที่ไม่มีกิจกรรมทั่วไปเช่นการแก้ไขซอร์สและมีผลกระทบอย่างมากต่อความถี่ซีพียู (ลดลงจาก 80% เป็น 40%) ความเร็วพัดลม และอายุการใช้งานแบตเตอรี่บนแล็ปท็อป เครื่องเสมือนที่ใช้งานอยู่หลายเครื่องของฉันมักไม่ต้องการเสียงหรือบางครั้งเท่านั้น (การปิดใช้งานเสียงใน guest OS ไม่มีผลกระทบไม่มีการหยุดชั่วคราวของเครื่องเสมือน แต่การตั้งค่าเกสต์บ็อกซ์เสมือนเป็นสิ่งสำคัญ)

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