จำกัด ความเร็ว CPU ในเครื่องเสมือนหรือไม่?


29

ไม่มีใครรู้วิธีที่จะ จำกัด ความเร็วของ CPU ในเครื่องเสมือนหรือไม่? หรือหากมีแม้แต่ซอฟต์แวร์เวอร์ชวลไลเซชันที่อนุญาตให้คุณทำเช่นนี้

ฉันกำลังพยายามค้นหาข้อกำหนดขั้นต่ำสำหรับระบบโดยระบุอิมเมจระบบปฏิบัติการเฉพาะที่ฉันมี ฉันเห็นวิธี จำกัด RAM และขนาดฮาร์ดดิสก์และจำนวนคอร์ แต่ฉันต้องทำให้ CPU ช้าลงถึง 800 MHz เพื่อจำลองการกำหนดค่าระบบจริงๆ นอกจากนี้คอมพิวเตอร์ที่ใช้เครื่องเสมือนเป็นเครื่อง Windows 7

คำตอบ:


21

ฉันถูกมอบหมายด้วยปัญหาเดียวกันและฉันได้ติดตั้ง Oracle VirtualBox บน Windows 7 (ในฐานะโฮสต์) และ Ubuntu (ในฐานะแขก) ฉันใช้แล็ปท็อปแบบสแตนด์อโลน HP EliteBook 8540W กับ Intl Core i7 ทำงานที่ 1.87 GigHZ และ 8Gig RAM

สมมติว่าการติดตั้งของคุณทำงานได้อย่างถูกต้องบนเครื่อง Guest ของคุณ (เช่นในกรณีของฉัน Ubuntu) เลือก "การตั้งค่า ... " จาก "เครื่อง" ในเมนูหลัก เลือก "ระบบ" และคลิกที่แท็บ "ตัวประมวลผล" คุณสามารถปรับความเร็วสัญญาณนาฬิกา (ป้ายกำกับ "Execution Cap") โดยเลื่อนตัวบ่งชี้บนแถบลงไปจนถึง 1 เปอร์เซ็นต์

ฉันคิดว่าโฮสต์ระบบปฏิบัติการ (Windows 7 ในกรณีของฉัน) ไม่ได้ใช้วงจรนาฬิกาใด ๆ (ฉันยืนยันสิ่งนี้โดยการตรวจสอบ "ตัวจัดการงาน" และฉันพบการใช้งาน ZERO CPU บนเครื่องโฮสต์. windows 7 ในกรณีของฉัน) ดังนั้นฉันจึงได้ 100% "การประมวลผลสูงสุด" เท่ากับของเครื่องโฮสต์ (เช่น 1.87 GigHZ) ฉันคิดว่าการใช้เปอร์เซ็นต์ระหว่างความเร็วสัญญาณนาฬิกาของเครื่องโฮสต์กับ 800 MHZ คุณสามารถคำนวณค่าเปอร์เซ็นต์ที่สอดคล้องกับ 800 MHZ

ฉันหวังว่านี่จะช่วยได้.

ขอให้โชคดี


9

บน VMWare ESX และ ESXi คุณสามารถสร้าง Resource Pool และ จำกัด CPU Resources สำหรับพูลนั้น สิ่งนี้จะช่วยให้คุณ จำกัด ความเร็ว CPU ของระบบใด ๆ ที่สร้างขึ้นใน Resource Pool นั้น


ฉันอ่านเกี่ยวกับตัวเลือกกลุ่มทรัพยากรและคิดว่ามันใช้ได้กับผู้เล่น น่าเศร้าที่นี่ไม่ใช่กรณี และ ESX / ESxi ไม่ฟรี ... แต่ฉันอาจลองใช้การทดลองและถ้ามันใช้งานได้จริงลองดูอีกครั้ง
RCC

6
ESXi ฟรี (และตัวละครอีกไม่กี่ตัว ... )
Tarnay Kálmán

จริงๆ? ด้วยเหตุผลบางอย่างฉันไม่คิดว่ามันเป็น แต่ฉันยืนแก้ไข! ขอบคุณมากสำหรับการชี้ให้เห็น
RCC


2

แม้ว่าฉันจะไม่มีความเชี่ยวชาญในเทคโนโลยีการจำลองเสมือนที่แตกต่างกันทั้งหมด แต่ฉันคิดว่ามันไม่น่าเป็นไปได้ที่คุณจะพบสภาพแวดล้อมเช่นนี้ อย่างไรก็ตามคุณจะพบการตั้งค่า (อย่างน้อยใน MS hyper-V) ที่ช่วยให้คุณสามารถ จำกัด เครื่องเสมือนเพียงร้อยละของการดำเนินการของเครื่องโฮสต์โดยรวม ดังนั้นหากคุณมีโฮสต์ 8 คอร์ที่ทำงานที่ 2 GHz คุณสามารถลอง จำกัด เครื่องเสมือนไคลเอ็นต์หนึ่งคอร์และไม่เกิน 45% ของคอร์

อย่างไรก็ตามนี่จะค่อนข้างหยาบและไม่เหมาะถ้าคุณกำลังลองทดสอบลูปการจับเวลาหรือบางอย่างที่ตัวประมวลผลที่แท้จริงเข้ามาเล่น


ฉันเห็นโปรแกรมสองโปรแกรมที่ทำเช่นนั้นคือ จำกัด เปอร์เซ็นต์การใช้งาน CPU ต่อกระบวนการ แต่เห็นตัวเลือก Linux เท่านั้น จริงอยู่ที่ฉันไม่ได้ดูมากในพวกเขา หากวิธีการแก้ปัญหาที่ฉันพยายามตามที่อธิบายไว้ในการตอบสนองต่อ MaxMackie ไม่ทำงานฉันจะตรวจสอบตัวเลือกเหล่านี้เพิ่มเติม
RCC

ใช่นี่อาจมีผลเสียอย่างแท้จริงต่อลูปจังหวะ ทุกอย่างขึ้นอยู่กับว่ามันวิ่งด้วยความเร็วเต็มที่สูงถึง 45% จากนั้นจะถูกตัดออกหรือถ้ามันพยายามวิ่งที่ 45%
Zan Lynx

2

--cpuexecutioncap <1-100>: การตั้งค่านี้ควบคุมเวลา cpu ที่ CPU เสมือนสามารถใช้ ค่า 50 หมายถึง CPU เสมือนเดียวสามารถใช้ CPU ของโฮสต์ได้สูงสุด 50%


1
ข้อมูลเพิ่มเติมจะทำให้คำตอบนี้เป็นที่ยอมรับ
Ramhound

1

ฉันสามารถยืนยันได้ว่าไม่รองรับ VirtualBox อย่างไรก็ตามเอกสารดูเหมือนว่าจะปลอดภัยหากว่า VMware สามารถทำสิ่งนี้ได้หรือไม่

แก้ไข: สำหรับ VMware: "ไม่สามารถทำได้กับผลิตภัณฑ์ Player และเซิร์ฟเวอร์ แต่ฉันเชื่อว่ามันอยู่ใน ESXi (ผลิตภัณฑ์" bare-metal hypervisor "ฟรี) และผลิตภัณฑ์ที่ต้องชำระเงินเช่น VMWare Workstation


ฉันสามารถยืนยันได้เช่นกัน - ฉันตั้งค่าทุกอย่างบน VirtualBox แล้วค้นพบสิ่งนั้น ขณะนี้ฉันใช้ VMware และพยายามแก้ไขไฟล์ config.ini เพื่อ จำกัด host.cpukHz เป็น 800000 สิ่งนี้ดูเหมือนจะหลอกเครื่องเสมือนให้คิดว่า CPU MHz เป็น 800 ฉันไม่แน่ใจว่าสิ่งนี้จะทำสิ่งที่ฉันต้องการหรือไม่ ไปถึง แต่นั่นคือสิ่งที่ฉันหวัง ไอเดีย?
RCC

จากสิ่งที่ฉันเห็นว่าควรจะทำงาน เพียงให้แน่ใจว่าคุณตั้ง host.noTSC = "TRUE" ในไฟล์ config เดียวกัน สิ่งนี้จะควบคุมนาฬิกาของ CPU เพื่อให้แน่ใจว่าจะไม่ทำให้ช้าลง นอกจากนี้ในระบบปฏิบัติการ guest ให้ไปที่แท็บตัวเลือกและตรวจสอบให้แน่ใจว่าได้เลือกการซิงโครไนซ์เวลาระหว่างเครื่องเสมือนกับระบบปฏิบัติการโฮสต์
n0pe

ใช่ฉันมี host.noTSc = "TRUE" เช่นกัน ฉันไม่สามารถค้นหาตำแหน่งที่เปิดใช้งานการซิงค์เวลาระหว่าง vm และโฮสต์ใน vmware player ได้แม้ว่า ...
RCC

ฉันค่อนข้างมั่นใจว่าคุณจะต้องทำงานในระบบปฏิบัติการของแขก
n0pe

1

คุณอาจจำลองด้วยการปักหมุด CPU จากนั้นสร้างกระบวนการเชื่อมโยง CPU บางอย่างที่ตรึงไว้กับ CPU เดียวกัน ความเร็ว CPU โดยประมาณคือ (ความเร็ว CPU จริง / จำนวนกระบวนการ)

ซอฟต์แวร์ จำกัด ทรัพยากรบางตัวจะอนุญาตให้คุณ จำกัด เปอร์เซ็นต์ของทรัพยากร สิ่งนี้จะทำให้ง่ายต่อการ จำกัด ความเร็วของ CPU หากต้องการทำเช่นนั้นคุณจะต้องปิดการเข้าถึงทรัพยากรสำรอง


0

บน VirtualBOX มีแถบเลื่อนที่คุณสามารถกำหนด% ของโฮสต์ CPU ที่ CPU ของแขกสามารถใช้ได้ เปอร์เซ็นต์ดังกล่าวใช้กับแต่ละคอร์

บน VirtualBOX ไม่มีวิธีจำลองมัลติคอร์ด้วยความเร็วที่แตกต่างกันในแต่ละคอร์เพียงหนึ่งตัวเลื่อนสำหรับทุกคอร์

การตั้งค่าตัวเลื่อนที่ 50% จะทำให้แกนของแขกรับเชิญทำงานที่ 1/2 ของโฮสต์หลัก (ต่อพื้นฐานหลัก)

ดังนั้นถ้าคุณมี deca core (10 คอร์) บนโฮสต์และ tri core สำหรับแขก (สาม) และคุณต้องการให้แขกเรียกใช้ที่ X MHz ในขณะที่โฮสต์ทำงานที่ Y MHz เพียงแค่ละเว้นจำนวนคอร์เพื่อคำนวณเปอร์เซ็นต์

สูตรจะเป็น: Percent = 100 * X / Y

หวังว่าสิ่งนี้จะช่วยให้ผู้อื่นมาเยี่ยมที่นี่ในอนาคต

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