Xen so với KVM trong hiệu suất


36

Cái gì nhanh hơn trên cùng một phần cứng, Xen hoặc KVM?

Tôi đang cố gắng chọn một công nghệ ảo hóa để hoạt động, mang lại hiệu suất tốt nhất.

Có một số điểm chuẩn ở đây mà tôi tìm thấy về chủ đề này: http://virt.kernelnewbies.org/XenVsKVM

Họ cho thấy KVM là người chiến thắng, với sự khác biệt đáng kể về hiệu suất - đi ngược lại với ý tưởng rằng KVM là một trình ảo hóa loại 2, và theo định nghĩa, nó phải chậm hơn so với các trình ảo hóa Loại 1 (như Xen) - hoặc ít nhất là những gì bài viết trên web nói.

Bất kỳ ý tưởng về chủ đề này?


Sự so sánh đó có vẻ khá tệ vì nó so sánh KVM + 1xVM và Xen + 1VM ... Điểm nào có ảo hóa nếu bạn chỉ có trên VM?
Antoine Benkemoun

KVM KHÔNG phải là một trình ảo hóa loại 2. Nó chắc chắn là loại 1, và nó chắc chắn gần với phần cứng hơn Xen. Vì vậy, có, với các điều kiện chính xác như nhau, KVM sẽ hoạt động tốt hơn, đặc biệt là với các trình điều khiển virtIO hiện đại
dyasny

Nếu bạn đang đọc bài này vào năm 2017 (ai đó đã thực hiện một chỉnh sửa nhỏ cho câu hỏi) thì hãy nhận ra rằng câu hỏi này và câu trả lời của nó là MỌI NĂM TUỔI . Cảnh quan KVM vs Xen bây giờ rất khác.
thomasrutter

Câu trả lời:


33

Điểm chuẩn đó chỉ là so sánh tốc độ của HĐH gốc với một HĐH khách. Nó hầu như không phải là một thử nghiệm trong thế giới thực. Tôi không nghĩ rằng tôi sẽ đặt nhiều trọng lượng vào nó. Hầu hết các trại KVM lập luận rằng Xen yêu cầu quá nhiều gián đoạn và bước nhảy giữa kernel và không gian người dùng, nhưng từ hầu hết các điểm chuẩn trong thế giới thực hơn mà tôi thấy rằng đã không thực sự được nhận ra và Xen dường như nhanh hơn một chút hơn KVM.

Xin lỗi tôi không có một liên kết để sao lưu tiện dụng. Nhưng tôi sẽ nói rằng KVM đang cải thiện nhanh chóng và dường như đang bắt kịp bộ tính năng và sự ổn định một cách nhanh chóng.

Cách tiếp cận nào tốt hơn. Trại Xen sẽ lập luận rằng một trình ảo hóa trọng lượng nhẹ thực sự được yêu cầu ảo hóa để được an toàn và nhanh chóng. Xen cũng bắt đầu được hỗ trợ trong phần sụn bởi một số nhà cung cấp cũng tốt. Trại KVM sẽ lập luận rằng KVM đơn giản hơn và Linux có khả năng trở thành một nhà ảo thuật tốt.

Cuối cùng, vẫn chưa rõ hướng cuối cùng sẽ giành chiến thắng. Xen chắc chắn có một khởi đầu và đã có một thị phần tốt đẹp. Nhưng nó không nằm trong kernel mainline. Hy vọng rằng điều đó sẽ thay đổi sớm và chắc chắn đã có rất nhiều thảo luận về điều này trong danh sách kernel trong vài tháng qua. Red Hat hiện đang ở trong trại KVM và sẽ đẩy nó trở thành nền tảng ảo hóa được lựa chọn. Red Hat Linux 5.4 sắp ra mắt sẽ là sản phẩm đầu tiên bao gồm nó. Vì vậy, điều đó có khả năng sẽ thu hút các cửa hàng chưa triển khai hoặc cam kết với một nền tảng ảo hóa.

Theo như các công cụ, cả Xen và KVM đều sử dụng libvirt và QEMU và các công cụ liên quan đến chúng. Vì vậy, họ chia sẻ nhiều công cụ tương tự như virt-manager.

Chúng tôi sử dụng Xen trong công việc, và nó hoạt động tốt cho chúng tôi. Nhưng tôi đã xem xét KVM do một số vấn đề về chuyển tiếp USB và thông qua PCI mà tôi không thể giải quyết với Xen. Tôi không chắc KVM có tốt hơn về điều này không, nhưng tôi đoán tôi sẽ tìm ra khi tôi thử nó. Một điều tôi nhận thấy khi nghiên cứu các vấn đề về USB của mình là tài liệu của KVM có thể đánh giá và tổ chức tốt hơn so với Xen. Nhưng không có nền tảng ảo hóa hoàn hảo, vì vậy bạn sẽ cần phải tìm ra điều gì có ý nghĩa với bạn.


Bất kỳ ý tưởng nếu cùng sẽ giữ trong tương lai? Vì Redhat 5.4 sắp ra mắt với sự hỗ trợ KVM bản địa, tôi muốn biết những gì tôi sẽ không phải chuyển sang KVM từ Xen trong 1/2 năm. Cảm ơn.
SyRenity

1
Tôi không thể đưa ra bất kỳ dự đoán nào về những gì tương lai nắm giữ. Nhưng cả hai nền tảng này sẽ không biến mất. RedHat đã nói rằng họ cam kết hỗ trợ Xen cũng như KVM. Chỉ có thời gian sẽ cho biết làm thế nào điều này diễn ra. Nhưng tôi sẽ không lo lắng về việc phải thay đổi trong 6 tháng. Có thể trong một vài năm sẽ có một nhà lãnh đạo rõ ràng trong các nền tảng ảo hóa mã nguồn mở.
3dinfluence

Thật thú vị khi bạn lưu ý chuyển sang KVM để hỗ trợ USB - Tôi vừa phải suy nghĩ về việc chuyển đi do thiếu hỗ trợ USB 2.0! Tôi đoán từ bài viết của bạn rằng Xen sẽ không tốt hơn nhiều.
jkp

1
@jkp Tôi đang chờ một vài cơ sở hạ tầng khác của chúng tôi được thay thế. Mà vừa hoàn thành. Vì vậy, trong những tuần tới tôi có thể có thể nhìn gần hơn vào KVM. Tuy nhiên, trong trường hợp của tôi, phần cứng không hỗ trợ IOMMU (VTd). Vì vậy, tôi không chắc chắn nếu chuyển sang KVM sẽ giúp. XEN yêu cầu hỗ trợ IOMMU cho pci passthrough. Nhưng KVM hỗ trợ USB và phần tử PCI thông qua sử dụng libvirt. Vì vậy, tôi hy vọng rằng nó sẽ hoạt động mà không có IOMMU. Ngay bây giờ, dưới Xen, cách duy nhất mà tôi biết để truyền qua USB là vượt qua bộ điều khiển USB PCI thông qua nhưng thông tin đó có thể được xác định vào thời điểm này.
3dinfluence

1
@ 3dinfluence: Tôi nghĩ rằng bạn có thể hiểu sai về cách triển khai hỗ trợ USB và PCI - libvirt không thực hiện bất kỳ điều nào trong số này, nó chỉ cung cấp cách định cấu hình các khả năng cơ bản của trình ảo hóa VM. Trong trường hợp này, các khả năng được cung cấp bởi sự kết hợp của các mô-đun hạt nhân KVM và mã không gian người dùng Qemu.
jkp

7

Cá nhân tôi sẽ chọn ảo hóa dựa trên khả năng sử dụng, hỗ trợ, độ tin cậy và sự phù hợp cho các máy ảo bạn đang sử dụng.

Tốc độ truyền dữ liệu mạng Xen có vẻ tốt như phần cứng thực sự, nhưng tôi cũng đã có một số trận chiến với Xen và vLans và nhiều thẻ Ethernet. Tôi không có kinh nghiệm về KVM, nhưng tôi cũng đề nghị bạn nên xem xét VMware ESX (i).


1
Hiệu suất IO của máy chủ Vmware rất, rất tệ. Nếu bạn phải đi vmware hãy sử dụng esx.
ko-dos

6

FWIW: Câu trả lời phụ thuộc hoàn toàn vào nhu cầu của bạn, bây giờ và trong tương lai.

Vâng, tôi biết đó là một câu trả lời không có ích. Thật không may, đó là sự thật. Sự lựa chọn ảo hóa của bạn sẽ ảnh hưởng đến khá nhiều thứ bạn làm sau đó, vì vậy bạn cần phải tự hỏi mình một vài câu hỏi.

(1) Sự khác biệt giữa 97% hiệu suất bản địa và 96% hiệu suất bản địa (số liệu bị loại ra khỏi không khí) có thực sự quan trọng với bạn không?

. ?

(2) Bạn có tự tin sử dụng các công cụ được cung cấp với một trong hai giải pháp không?

(3) Việc một người có (loại) có nguồn gốc từ các nhân Linux gần đây, còn người kia thì không, có làm nên sự khác biệt không?

(3a) Bạn có bây giờ, hoặc bạn đã bao giờ ... ờ ... bạn có bao giờ cần chạy một hệ điều hành khác trong ảo hóa không? Nó không phải là Windows. Nó có thể là FreeBSD, hoặc thậm chí là Haiku, hoặc bất cứ điều gì. (Xen có thể thắng ở đây, nhưng tôi khuyên bạn nên kiểm tra.)

Nhìn vào bức tranh lớn, tôi thấy KVM là câu trả lời của Linux cho các khu vực Solaris. (Tôi muốn có các vùng Solaris, nhưng tôi thấy song song.) Tôi thấy Xen là một công nghệ siêu giám sát trưởng thành có hỗ trợ nhiều HĐH, nhưng sau đó nếu bạn không cần nhiều HĐH, điều đó không thành vấn đề.

Thành thật mà nói, bạn không thể đi quá xa cả hai cách (hãy cẩn thận ở trên). Tôi thích Xen hơn, vì tôi đã đến Cambridge; nhưng sau đó, nếu tôi làm việc cho RH, có lẽ tôi thích KVM hơn.


6

Bạn sẽ tìm thấy thông tin rất thú vị về chủ đề này trong phần trình bày sau: So sánh định lượng Xen và KVM

Người đã làm điều này là một chuyên gia Xen, nhưng so sánh có vẻ khá công bằng.


Cảm ơn vì bài thuyết trình, đọc có vẻ như trong khi Xen đứng đầu về CPU và Network IO, KVM đứng đầu trên HD IO. Nhưng đọc những con số này ( virt.kernelnewbies.org/XenVsKVM ), dường như KVM đã nắm trong tay mọi so sánh. Bất cứ ý tưởng đâu là sự thật? :)
SyRenity

Tôi tin rằng bài thuyết trình của tôi có vẻ thực tế hơn. Nó chạy nhiều hơn một VM tại một thời điểm. Các giao thức thử nghiệm dường như gần hơn với thực tế.
Antoine Benkemoun

+1 Trình bày thú vị! Xen dường như có sự cô lập tốt hơn.
Jonas

5

Tôi có thể đi ra ngoài ở đây, nhưng tôi không nghĩ rằng hiệu suất thô là chỉ số quan trọng nhất khi nói đến các công nghệ như thế này.

Tôi nghĩ rằng khả năng sử dụng và giao diện là quan trọng, cũng như các công cụ để hỗ trợ cơ sở hạ tầng đáng tin cậy. Dường như với tôi, Xen có một bộ ứng dụng hiện có mạnh mẽ hơn rất nhiều hỗ trợ nó so với KVM. Đó có thể không phải là trường hợp, vì tôi không có bằng chứng để sao lưu nó.

Bất cứ điều gì bạn đi với, quyết định giải pháp tốt nhất cho bạn là gì, và xem xét toàn bộ gói, không chỉ là hiệu suất thô.


Bạn cần có một cái nhìn về RHEV - quản lý rất đơn giản và thân thiện với người dùng.
dyasny

2

Rất nhiều khó khăn hoặc dễ dàng trong việc thiết lập KVM phụ thuộc vào phân phối. Chọn phân phối Xen-centric sẽ giúp Xen dễ dàng hơn. Chọn một phân phối KVM làm trung tâm sẽ giúp KVM dễ dàng hơn.

Các câu hỏi công cụ có phần không liên quan vì cả hai đều sử dụng libvirt. Điều này có nghĩa là bạn sử dụng các công cụ quản lý giống nhau cho cả hai trong hầu hết các trường hợp.


1

Vào cuối năm 2017, Amazon trước đây là người dùng Xen lớn nhất, đã thông báo rằng họ sẽ sử dụng KVM cho tất cả các loại đối tượng C5 mới của họ . Theo hiểu biết tốt nhất của tôi, chỉ có nhà cung cấp đám mây SoftLayer là người dùng Xen lớn. Linode chuyển sang năm 2015, và báo cáo những cải tiến hiệu suất lớn .

Thật khó để tìm thấy so sánh hiệu suất thực tế và cập nhật, nhưng dường như không có khoảng cách quá lớn giữa cả hai giải pháp như bạn nghĩ. Tùy thuộc vào trường hợp sử dụng, Xen có thể nhanh hơn nữa. KVM có những lợi ích khác, là một phần của nhân Linux và được RedHat chấp nhận, cũng có liên quan. Chẳng hạn, câu trả lời này giải thích chi tiết tại sao Google chọn KVM cho Google Compute Engine.

Tuy nhiên, thực tế là hầu hết tất cả các nhà cung cấp đám mây, đặc biệt là Google và Amazon, đang chọn KVM thay vì Xen là một lập luận mạnh mẽ rằng đối với khối lượng công việc thông thường, KVM là một lựa chọn rất tốt về hiệu suất.


Lưu ý: Amazon sử dụng phiên bản sửa đổi của KVM, không phải bản gốc. Và tôi sẽ không nói rằng họ có khối lượng công việc điển hình, có lẽ họ có khối lượng công việc thực sự nặng nề và không phổ biến,
imho

@ALex_hha Ý tôi là họ phải chọn một công nghệ hoạt động tốt nhất cho các ứng dụng mà khách hàng của họ sẽ chạy. Theo nghĩa đó, họ phải tìm một thiết lập nhanh hơn các trường hợp sử dụng khác nhau. Nhưng tôi đồng ý rằng có những kịch bản khác, như các hệ thống nhúng, trong đó Xen có thể so sánh thuận lợi hơn.
Philipp Claßen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.