ประสิทธิภาพ Xen vs. KVM


36

จะเร็วกว่าอะไรในฮาร์ดแวร์เดียวกัน Xen หรือ KVM

ฉันพยายามเลือกเทคโนโลยีเวอร์ชวลไลเซชันให้ใช้งานได้ซึ่งให้ประสิทธิภาพที่ดีที่สุด

มีมาตรฐานบางอย่างที่ฉันพบในเรื่องนี้: http://virt.kernelnewbies.org/XenVsKVM

พวกเขาแสดงให้เห็นว่า KVM เป็นผู้ชนะซึ่งมีความแตกต่างอย่างมากในประสิทธิภาพ - ซึ่งขัดกับแนวคิดที่ว่า KVM เป็นไฮเปอร์ไวเซอร์ประเภท 2 และโดยคำนิยามมันควรจะช้ากว่าไฮเปอร์ไวเซอร์ Type-1 (เช่น Xen) หรืออย่างน้อย บทความบนเว็บพูด

มีความคิดเกี่ยวกับเรื่องนี้ไหม?


การเปรียบเทียบนั้นดูไม่ดีนักเมื่อเปรียบเทียบ KVM + 1xVM และ Xen + 1VM ... จุดประสงค์ของการมีเวอร์ชวลไลเซชันคืออะไรถ้าคุณมีเฉพาะบน VM?
แอนทอน Benkemoun

KVM ไม่ใช่ไฮเปอร์ไวเซอร์ประเภท 2 มันเป็นประเภทที่ 1 แน่นอนและใกล้กับฮาร์ดแวร์มากกว่าที่ Xen เป็นแน่นอน ดังนั้นใช่ด้วยเงื่อนไขเดียวกันที่แน่นอน KVM ควรทำงานได้ดีขึ้นโดยเฉพาะกับโปรแกรมควบคุม virtIO ที่ทันสมัย
dyasny

หากคุณกำลังอ่านข้อความนี้ในปี 2017 (คนที่ได้แก้ไขเล็กน้อยเพื่อคำถาม) แล้วเห็นว่าคำถามนี้และคำตอบที่มีอายุแปดขวบ ภูมิทัศน์ KVM vs Xen แตกต่างกันมากในขณะนี้
thomasrutter

คำตอบ:


33

เกณฑ์มาตรฐานนั้นเป็นการเปรียบเทียบความเร็วของระบบปฏิบัติการดั้งเดิมกับระบบปฏิบัติการเกสต์เดียว เป็นการทดสอบในโลกแห่งความเป็นจริงแทบจะไม่ ฉันไม่คิดว่าฉันจะให้น้ำหนักกับมันมากนัก ส่วนใหญ่ของค่าย KVM ให้เหตุผลว่า Xen ต้องการการขัดจังหวะและการข้ามมากเกินไประหว่างเคอร์เนลและพื้นที่ผู้ใช้ แต่จากมาตรฐานที่แท้จริงในโลกส่วนใหญ่ที่ฉันได้เห็นว่ายังไม่ได้รับการตระหนักและ Xen ดูเหมือนจะเร็วขึ้นเล็กน้อย กว่า KVM

ขออภัยฉันไม่มีลิงก์สำรองที่มีประโยชน์ แต่ฉันจะบอกว่า KVM กำลังพัฒนาอย่างรวดเร็วและดูเหมือนว่าจะติดตามชุดคุณลักษณะและความเสถียรอย่างรวดเร็ว

วิธีไหนดีกว่ากัน ค่าย Xen จะยืนยันว่าไฮเปอร์ไวเซอร์ที่มีน้ำหนักเบาอย่างแท้จริงนั้นจำเป็นต้องใช้การจำลองเสมือนเพื่อความปลอดภัยและรวดเร็ว Xen เริ่มที่จะได้รับการสนับสนุนในเฟิร์มแวร์โดยผู้จำหน่ายบางรายซึ่งก็ดีเช่นกัน ค่าย KVM จะยืนยันว่า KVM นั้นง่ายกว่าและ Linux นั้นสามารถเป็นไฮเปอร์ไวเซอร์ที่ดีได้

ในที่สุดก็ยังไม่ชัดเจนว่าทิศทางใดจะชนะในที่สุด Xen มีจุดเริ่มต้นอย่างแน่นอนและมีส่วนแบ่งตลาดที่ดีอยู่แล้ว แต่มันยังไม่ได้อยู่ในเคอร์เนลฉีด หวังว่าจะมีการเปลี่ยนแปลงในไม่ช้าและมีการพูดคุยกันมากมายเกี่ยวกับรายชื่อเคอร์เนลในช่วงไม่กี่เดือนที่ผ่านมา Red Hat อยู่ในค่าย KVM แล้วและจะผลักดันให้เป็นแพลตฟอร์มเวอร์ชวลไลเซชันที่เลือก Red Hat Linux 5.4 ที่กำลังจะเปิดตัวในไม่ช้านี้จะเป็นรายแรกที่รวมไว้ ดังนั้นน่าจะดึงดูดร้านค้าที่ยังไม่ได้เปิดตัวหรือมุ่งมั่นกับแพลตฟอร์มเวอร์ชวลไลเซชัน

เท่าที่เครื่องมือใช้งานทั้ง Xen และ KVM ใช้ libvirt และ QEMU และเครื่องมือที่เกี่ยวข้อง ดังนั้นพวกเขาจึงแบ่งปันเครื่องมือเดียวกันหลายอย่างเช่น virt-manager

เราใช้ Xen ในที่ทำงานและทำงานได้ดีสำหรับเรา แต่ฉันได้ตรวจสอบ KVM เนื่องจากปัญหาการส่งต่อ USB และปัญหา PCI passthrough บางอย่างฉันไม่สามารถแก้ไขด้วย Xen ได้ ฉันไม่แน่ใจว่า KVM ดีกว่านี้ แต่ฉันคิดว่าฉันจะรู้ทันทีที่ฉันลอง สิ่งหนึ่งที่ฉันสังเกตเห็นในการค้นคว้าปัญหา USB ของฉันคือเอกสารของ KVM สามารถประเมินและจัดระเบียบได้ดีกว่าของ Xen แต่ไม่มีแพลตฟอร์มเวอร์ชวลไลเซชั่นที่สมบูรณ์แบบดังนั้นคุณจะต้องเข้าใจว่าอะไรเหมาะสมสำหรับคุณ


หากมีความคิดเช่นนี้จะเกิดขึ้นในอนาคต เนื่องจาก Redhat 5.4 กำลังมาเร็ว ๆ นี้พร้อมการสนับสนุน KVM แบบดั้งเดิมฉันต้องการทราบว่าฉันไม่ต้องเปลี่ยนเป็น KVM จาก Xen ใน 1/2 ปี ขอบคุณ
SyRenity

1
ฉันไม่สามารถคาดการณ์ได้ว่าอนาคตจะเป็นอย่างไร แต่แพลตฟอร์มเหล่านี้จะไม่หายไป RedHat ได้กล่าวว่าพวกเขามุ่งมั่นที่จะสนับสนุน Xen เช่นเดียวกับ KVM เวลาเท่านั้นที่จะบอกว่าสิ่งนี้เล่นออก แต่ฉันไม่ต้องกังวลเกี่ยวกับการเปลี่ยนแปลงใน 6 เดือน บางทีในอีกไม่กี่ปีข้างหน้าจะมีผู้นำที่ชัดเจนในแพลตฟอร์ม virtualization opensource
3dinfluence

น่าสนใจที่คุณทราบว่ากำลังจะย้ายไปที่การสนับสนุน USB สำหรับ KVM - ฉันแค่คิดถึงการย้ายออกเนื่องจากขาดการสนับสนุน USB 2.0! ฉันคาดเดาจากโพสต์ของคุณว่า Xen จะไม่ดีไปกว่านี้อีกแล้ว
jkp

1
@ jkp ฉันกำลังรอโครงสร้างพื้นฐานของเราอีกสองสามชิ้นที่จะถูกแทนที่ ซึ่งเพิ่งเสร็จสิ้น ดังนั้นในอีกไม่กี่สัปดาห์ข้างหน้าฉันอาจจะสามารถมองใกล้ KVM ได้มากขึ้น อย่างไรก็ตามในกรณีของฉันฮาร์ดแวร์ไม่รองรับ IOMMU (VTd) ดังนั้นฉันไม่แน่ใจว่าการย้ายไปที่ KVM จะช่วยได้หรือไม่ XEN ต้องการการสนับสนุน IOMMU สำหรับ pci passthrough แต่ KVM รองรับองค์ประกอบ USB และ PCI โดยใช้ libvirt ดังนั้นฉันจึงหวังว่าจะใช้งานได้หากไม่มี IOMMU ตอนนี้ภายใต้ Xen วิธีเดียวที่ฉันรู้ว่าการส่งผ่าน USB คือผ่านตัวควบคุม USB PCI ผ่าน แต่ข้อมูลนั้นอาจลงวันที่ ณ จุดนี้
3dinfluence

1
@ 3dinfluence: ฉันคิดว่าคุณอาจเข้าใจผิดว่าการสนับสนุน USB และ PCI นั้นถูกนำไปใช้อย่างไร - libvirt ไม่ได้ทำสิ่งเหล่านี้ แต่ให้วิธีการกำหนดค่าความสามารถพื้นฐานของ VM hypervisor ในกรณีนี้ความสามารถนั้นได้มาจากการรวมกันของโมดูลเคอร์เนล KVM และรหัสผู้ใช้ Qemu
jkp

7

ฉันจะเลือกใช้ระบบเสมือนจริงตามความสามารถในการใช้งานการสนับสนุนความน่าเชื่อถือและความเหมาะสมสำหรับเครื่องเสมือนที่คุณใช้

อัตราการถ่ายโอนข้อมูลเครือข่าย Xen ดูเหมือนว่าจะดีเท่ากับฮาร์ดแวร์จริง แต่ฉันก็เคยต่อสู้กับ Xen และ vLans และการ์ดอีเทอร์เน็ตหลายตัว ฉันไม่มีประสบการณ์เกี่ยวกับ KVM แต่ฉันขอแนะนำให้คุณพิจารณา VMware ESX (i) ด้วย


1
ประสิทธิภาพของเซิร์ฟเวอร์ Vmware IO นั้นแย่มาก ๆ ถ้าคุณต้องใช้ vmware ให้ใช้ esx
ko-dos

6

FWIW: คำตอบนั้นขึ้นอยู่กับความต้องการของคุณทั้งในปัจจุบันและอนาคต

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

(1) ความแตกต่างระหว่าง 97% ของการแสดงพื้นเมืองและ 96% ของการแสดงพื้นเมือง (ตัวเลขที่ดึงออกมาจากอากาศ) เป็นสิ่งสำคัญสำหรับคุณหรือไม่

(1a) ถ้าใครทำได้ดีกว่าด้วยการเข้าถึง HD (ซึ่งบอกเป็นนัยว่าคุณกำลังใช้ฐานข้อมูลที่ยอดเยี่ยมหรือคุณไม่สามารถจ่ายแรมเพิ่มได้) และอีกอันนั้นทำงานได้ดีกว่าในระบบเครือข่ายซึ่งสำคัญกับคุณมากกว่า ?

(2) คุณมั่นใจในการใช้เครื่องมือที่มาพร้อมกับโซลูชันทั้งสองหรือไม่?

(3) ความจริงที่ว่าหนึ่งในนั้นเป็นของเคอร์เนลลีนุกซ์รุ่นล่าสุดและอีกอันไม่ได้สร้างความแตกต่างหรือไม่?

(3a) ตอนนี้คุณเป็นหรือเคยเป็น ... เอ้อ ... คุณจะต้องใช้ระบบปฏิบัติการอื่นภายใต้ระบบเสมือนจริงหรือไม่? ไม่จำเป็นต้องเป็น Windows มันอาจจะเป็น FreeBSD หรือแม้แต่ไฮกุหรืออะไรก็ตาม (Xen อาจชนะที่นี่ แต่ฉันแนะนำให้คุณตรวจสอบ)

เมื่อดูภาพรวมฉันเห็นว่า KVM เป็นคำตอบของ Linux ในโซน Solaris (ฉันอยากมีโซลาริโซน แต่ฉันเห็นว่าขนานกัน) ฉันเห็นว่า Xen เป็นเทคโนโลยีไฮเปอร์ไวเซอร์ที่สมบูรณ์พร้อมการรองรับระบบปฏิบัติการหลายระบบ แต่ถ้าคุณไม่ต้องการระบบปฏิบัติการหลายระบบ

เพื่อความซื่อสัตย์อย่างแท้จริงคุณไม่สามารถไปผิดทางใดทางหนึ่งได้ ฉันชอบ Xen เพราะฉันไปเคมบริดจ์ แต่ถ้าฉันทำงานให้กับ RH ฉันอาจจะชอบ KVM


6

คุณจะพบข้อมูลที่น่าสนใจเกี่ยวกับเรื่องในการนำเสนอดังต่อไปนี้: การเปรียบเทียบเชิงปริมาณของ Xen และ KVM

คนที่ทำสิ่งนี้เป็นผู้เชี่ยวชาญของ Xen แต่การเปรียบเทียบนั้นค่อนข้างยุติธรรม


ขอบคุณสำหรับงานนำเสนอการอ่านดูเหมือนว่าในขณะที่ Xen ติดอันดับบน CPU และเครือข่าย IO, KVM ติดอันดับใน HD IO แต่การอ่านตัวเลขนี้ ( virt.kernelnewbies.org/XenVsKVM ) ดูเหมือนว่า KVM ชนะทุกการเปรียบเทียบ ความคิดใดที่ความจริงอยู่ที่ไหน :)
SyRenity

ฉันเชื่อว่างานนำเสนอของฉันดูเหมือนจริงมากขึ้น มันทำงานมากกว่าหนึ่ง VM ในเวลา โปรโตคอลการทดสอบดูเหมือนจะใกล้เคียงกับความเป็นจริง
Antoine Benkemoun

+1 งานนำเสนอที่น่าสนใจ! ดูเหมือนว่าเซนจะมีความโดดเดี่ยวดีกว่า
Jonas

5

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

ฉันคิดว่าการใช้งานและส่วนต่อประสานนั้นมีความสำคัญเช่นเดียวกับเครื่องมือในการสนับสนุนโครงสร้างพื้นฐานที่เชื่อถือได้ สำหรับฉันแล้วดูเหมือนว่า Xen มีชุดแอพพลิเคชั่นที่มีอยู่แล้วที่แข็งแกร่งซึ่งสนับสนุน KVM มากกว่า นั่นอาจไม่เป็นเช่นนั้นเพราะฉันไม่มีหลักฐานสำรอง

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


คุณต้องดูที่ RHEV - การจัดการนั้นง่ายมากและใช้งานง่าย
dyasny

2

ความยากลำบากหรือความง่ายในการติดตั้ง KVM ขึ้นอยู่กับการกระจายสินค้า การเลือกการกระจายแบบเซ็นเซนจะทำให้ Xen ง่ายขึ้น การเลือกการกระจาย KVM เป็นศูนย์กลางจะทำให้ KVM ง่ายขึ้น

คำถามเครื่องมือค่อนข้างไม่เกี่ยวข้องเพราะทั้งคู่ใช้ libvirt ซึ่งหมายความว่าคุณใช้เครื่องมือการจัดการเดียวกันสำหรับทั้งสองกรณี


1

ในตอนท้ายของ 2017, Amazon ซึ่งเดิมเป็นผู้ใช้ Xen ใหญ่ที่สุดประกาศว่าจะใช้KVM ทั้งหมดของพวกเขาชนิดเช่น เพื่อความรู้ที่ดีที่สุดของฉันมีเพียงผู้ให้บริการคลาวด์ SoftLayer เท่านั้นที่เหลือในฐานะผู้ใช้ Xen รายใหญ่ Linode เปิดในปี 2015 และรายงานผลการดำเนินงานที่สำคัญการปรับปรุง

เป็นการยากที่จะค้นหาการเปรียบเทียบประสิทธิภาพที่เป็นจริงและทันสมัย ​​แต่ดูเหมือนจะไม่มีช่องว่างขนาดใหญ่ระหว่างโซลูชันทั้งสองอย่างที่คุณคิด ขึ้นอยู่กับกรณีการใช้งาน Xen สามารถทำได้เร็วขึ้น KVM มีประโยชน์อื่น ๆ ซึ่งเป็นส่วนหนึ่งของเคอร์เนล Linux และกอดโดย RedHat ที่เกี่ยวข้องเช่นกัน ตัวอย่างเช่นคำตอบนี้อธิบายถึงสาเหตุที่ Google เลือก KVM สำหรับ Google Compute Engine

ถึงกระนั้นความจริงที่ว่าผู้ให้บริการคลาวด์เกือบทั้งหมดโดยเฉพาะอย่างยิ่ง Google และ Amazon เลือกใช้ KVM มากกว่า Xen เป็นข้อโต้แย้งที่แข็งแกร่งว่าสำหรับปริมาณงานทั่วไป KVM เป็นตัวเลือกที่ดีมากในแง่ของประสิทธิภาพ


หมายเหตุ: Amazon ใช้เวอร์ชันที่แก้ไขแล้วของ KVM ไม่ใช่แบบเนทีฟ และฉันจะไม่พูดว่าพวกเขามีภาระงานทั่วไปบางทีพวกเขามีภาระงานหนักและผิดปกติจริงๆ imho
ALex_hha

@ALex_hha สิ่งที่ฉันหมายถึงคือพวกเขาต้องเลือกเทคโนโลยีที่ดีที่สุดสำหรับแอปพลิเคชันที่ลูกค้าของพวกเขาจะทำงาน ในแง่นั้นพวกเขาต้องค้นหาการตั้งค่าที่รวดเร็วกว่ากรณีใช้งานที่แตกต่างกัน แต่ฉันยอมรับว่ามีสถานการณ์อื่น ๆ เช่นระบบฝังตัวที่ Xen อาจเทียบเคียงได้ดีกว่า
Philipp Claßen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.