ความแตกต่างด้านประสิทธิภาพของ Virtual Machine กับฟิสิคัลโฮสต์เป็นอย่างไร


15

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

ทั้งหมดนี้บานพับในจุดต่อไปนี้ โปรแกรมที่เราจำเป็นต้องเรียกใช้คือตัวจำลองซึ่งเป็นงานที่ต้องใช้ตัวประมวลผลมากซึ่งสามารถรันได้อย่างง่ายดายมากถึงหนึ่งชั่วโมงหรือมากกว่าในแต่ละครั้งที่มีการเปิดตัวการจำลอง เราจำเป็นต้องตัดสินใจว่าประสิทธิภาพในการทำงานลดลงเมื่อใช้ Virtual Box มีขนาดใหญ่พอที่จะเปลี่ยนแปลงระบบปฏิบัติการของเราหรือไม่

ดังนั้นคำถามของฉันคือถ้าทุกคนสามารถบอกฉันได้อย่างมีประสิทธิภาพว่าอะไรคือประสิทธิภาพจากการใช้งานโพรเซสเซอร์แบบเข้มข้นในกล่องเสมือนกับการใช้งานบนพีซีแบบเนทีฟ

ขอบคุณ

คำตอบ:


15

สำหรับโปรแกรมที่มีการ จำกัด ตัวเลข (มี CPU มาก) ควรมีประสิทธิภาพเกือบเป็นศูนย์สำหรับ VM คำแนะนำจะรันโดยตรงบน CPU ซึ่งเหมือนกันสำหรับโฮสต์และ VM

แม้สำหรับงานรวบรวมอย่างหนักความแตกต่างด้านประสิทธิภาพก็แทบจะสังเกตได้ยาก เรารัน CentOS VMs ใน VMware บน Windows

เนื่องจากคุณใช้งาน Linux บนโฮสต์คุณอาจพิจารณาKVM (Kernel Virtual Machine) แทน VirtualBox เป็นชุดของโมดูลเคอร์เนลที่ให้บริการการจำลองเสมือนใน Linux โดยใช้ส่วนขยายการจำลองเสมือน Intel VT-x ที่มีอยู่ใน CPU ที่ทันสมัยส่วนใหญ่ทั้งหมด QEMU ใช้ KVM เป็นผู้ดำเนินการเพื่อเรียกใช้รหัส x86 โดยตรงบนโฮสต์ CPU

เพียงติดตั้งvirt-managerเพื่อลอง


ตกลง. ฉันจะให้นัดนั้น ขอบคุณสำหรับการตอบกลับ.
aarelovich

KVM เปรียบเทียบประสิทธิภาพกับ VirtualBox อย่างไร (สมมติว่าใช้ Windows 10 บนระบบ Linux)
Royi

ควรจะเหมือนกันเกือบทั้งหมดหาก VirtualBox ใช้ประโยชน์จากส่วนขยายการจำลองเสมือนของ CPU (เช่นเดียวกับ KVM) และภาระงานส่วนใหญ่เป็น CPU ที่ถูกผูกไว้ ถ้างานหนัก I / O ประสิทธิภาพจะแตกต่างกันไปขึ้นอยู่กับฮาร์ดแวร์ที่เลือก KVM มีไดร์เวอร์ paravirtualized (virtio) ที่สามารถทำได้ดีกว่าอุปกรณ์ที่จำลอง (เช่น E1000 NIC และ LSI SCSI ดิสก์คอนโทรลเลอร์) โดยทั่วไปแล้วพวกเขาควรจะอยู่ใกล้พอสมควร
Jonathon Reinhart

6

ไม่มีคำตอบเดียวที่ดีสำหรับเรื่องนี้ ขึ้นอยู่กับว่าคุณใช้ VM และโปรแกรมใด

เช่นการใช้ VMWare (ไฮเปอร์ไวเซอร์ประเภท 2) และโปรแกรมที่เชื่อมโยงกับ CPU อย่างหมดจดให้ความเร็วของ CPU เกือบเต็ม หากฉันใช้ไฮเปอร์ไวเซอร์ตัวเดียวกันกับโปรแกรมที่มีการเรียกใช้ระบบจำนวนมากฉันจะได้รับการชะลอตัวอย่างรุนแรง

และสิ่งต่าง ๆ ก็เปลี่ยนไปเมื่อคุณใช้ระบบปฏิบัติการไฮเปอร์ไวเซอร์ประเภท 1 (ไม่มีแขก) และระหว่างที่คุณมีความหลากหลาย เช่น Xen ที่มี 5 (IIRC จากสุดสัปดาห์ที่แล้ว FOSDEM พูดคุยกับ Xen) โหมดที่รองรับ จาก HW ที่ใช้เพื่อเสมือนจริง

วิธีสรุป: ตามที่ถามมันอาจแตกต่างกันไปจากแทบจะไม่ช้าไปช้าอย่างจริงจัง


ตอนนี้ถ้าฉันมุ่งเน้นไปที่ VirtualBox นั่นคือไฮเปอร์ไวเซอร์ประเภท 2 โปรแกรมที่เชื่อมโยงกับ CPU อย่างหมดจดควรจะดี


ส่วนใหญ่ของโปรแกรมเหล่านี้จำเป็นต้องเปลี่ยนภาษาเป็น C Code และรวบรวมมัน เมื่อเราทำการจำลองการรวบรวมนี้เป็นสิ่งที่เรียกใช้ เห็นด้วยกับคุณแล้วมันควรจะดีไหม
aarelovich

ฉันสงสัยว่าประสิทธิภาพจะดีขึ้น ประสบการณ์กล่องเสมือนของฉันมี จำกัด (ฉันส่วนใหญ่ใช้ VMware เวิร์กสเตชัน) แต่ฉันไม่เห็นเหตุผลทางเทคนิคว่าทำไมจึงควรช้า
Hennes

KVM เปรียบเทียบประสิทธิภาพกับ VirtualBox อย่างไร (สมมติว่าใช้ Windows 10 บนระบบ Linux)
Royi

5

ที่จริงแล้วดูเหมือนว่านักเทียบท่าอาจเป็นตัวเลือกที่ดียิ่งขึ้นสำหรับสิ่งที่คุณทำ นักเทียบท่าจัดเตรียมคอนเทนเนอร์ซึ่งเป็น sandbox แบบแยกที่เรียกใช้บนเคอร์เนลเดียวกัน การเรียกใช้ระบบ / ค่าใช้จ่าย IO เป็นศูนย์เนื่องจากกระบวนการในภาชนะของคุณไม่แตกต่างจากกระบวนการในโฮสต์

เนื่องจากคุณใช้ Linux อยู่แล้ว Docker จะเป็นวิธีที่ยอดเยี่ยมในการมอบสภาพแวดล้อม CentOS โดยไม่ต้องติดตั้งเครื่องทั้งหมดของคุณใหม่

นอกจากนี้ตรวจสอบอรรถประโยชน์ของฉันScubaซึ่งทำให้ง่ายต่อการเรียกใช้สิ่งต่าง ๆ เช่นงานสร้างภายในคอนเทนเนอร์นักเทียบท่า แทนการทำงานที่คุณจะเรียกใช้make scuba makeนั่นคือทั้งหมด!


แจ้งให้เราทราบหากคุณต้องการทดลองใช้และต้องการความช่วยเหลือในการเริ่มต้น
Jonathon Reinhart

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