Sự khác biệt hiệu năng của Máy ảo so với máy chủ Vật lý là gì?


15

Nơi tôi làm việc, chúng tôi đang chạy các PC tương đối mạnh bằng cách sử dụng Phân phối Debian Linux. Tuy nhiên, đối với một số chương trình nhất định mà chúng tôi cần cài đặt, sẽ tốt hơn nếu có CentOS và đây sẽ là những công cụ làm việc chính của chúng tôi. Thay đổi hệ điều hành cho tất cả các máy tính tại nơi làm việc của chúng tôi là một khả năng, nhưng chúng tôi đang cố gắng quyết định xem sử dụng VirtualBox có phải là lựa chọn tốt hơn cho đơn giản không.

Điều này tất cả các bản lề về điểm sau. Các chương trình chúng ta cần chạy là các trình giả lập, là các tác vụ rất nặng của bộ xử lý, có thể dễ dàng chạy tới một giờ hoặc hơn mỗi lần khởi chạy mô phỏng. Chúng ta cần quyết định xem sự suy giảm hiệu năng khi sử dụng Virtual Box có đủ lớn để thay đổi hệ điều hành của chúng ta hay không.

Vì vậy, câu hỏi của tôi là nếu bất cứ ai có thể xác minh cho tôi biết hiệu năng đạt được từ việc chạy một tác vụ chuyên sâu của bộ xử lý trong hộp ảo so với chạy nó trên PC gốc là gì?

Cảm ơn.

Câu trả lời:


15

Đối với các chương trình xử lý số (rất hạn chế CPU), sẽ có hiệu năng gần như bằng không đối với VM. Các hướng dẫn chạy trực tiếp trên CPU, tương tự cho máy chủ và VM.

Ngay cả đối với các tác vụ biên dịch nghiêm túc, sự khác biệt hiệu năng hầu như không đáng chú ý. Chúng tôi chạy máy ảo CentOS trong VMware trên Windows.

Vì bạn đang chạy Linux trên máy chủ, bạn cũng có thể xem xét KVM (Máy ảo Kernel) thay vì VirtualBox. Đây là một loạt các mô-đun hạt nhân cung cấp các dịch vụ ảo hóa trong Linux, sử dụng các phần mở rộng ảo hóa Intel VT-x có sẵn trên hầu hết các CPU hiện đại. QEMU sử dụng KVM như một bộ giải mã để chạy mã x86 trực tiếp trên CPU chủ.

Chỉ cần cài đặt virt-managerđể thử nó.


Đồng ý. Tôi sẽ cho nó một shot. Cảm ơn vi đa trả lơi.
aarelovich

Làm thế nào, hiệu suất khôn ngoan, KVM so với VirtualBox (Giả sử chạy Windows 10 trên Hệ thống Linux)?
Royi

Chúng phải gần giống nhau nếu VirtualBox đang tận dụng các phần mở rộng ảo hóa CPU (giống như KVM) và khối lượng công việc chủ yếu là CPU bị ràng buộc. Nếu các tác vụ nặng I / O, hiệu suất sẽ thay đổi tùy thuộc vào phần cứng được chọn. KVM có các trình điều khiển ảo hóa (virtio) có thể vượt xa các thiết bị mô phỏng (ví dụ: bộ điều khiển đĩa E1000 NIC và LSI SCSI). Nói chung mặc dù họ nên gần gũi hợp lý.
Jonathon Reinhart

6

Không có một câu trả lời tốt duy nhất cho điều này. Nó phụ thuộc rất nhiều vào cách bạn sử dụng VM và chương trình nào.

Ví dụ: sử dụng VMWare (một trình ảo hóa loại 2) và một chương trình hoàn toàn bị ràng buộc bởi CPU mang lại tốc độ CPU gần như đầy đủ. Nếu tôi sử dụng cùng một trình ảo hóa, một chương trình có nhiều cuộc gọi hệ thống, tôi sẽ bị chậm nghiêm trọng.

Và mọi thứ cũng thay đổi khi bạn sử dụng HĐH loại 1 (không có khách). Và thậm chí giữa những người bạn có rất nhiều biến thể. Ví dụ: Xen với 5 (IIRC từ cuối tuần trước FOSDEM nói về chế độ Xen) mà nó hỗ trợ. Từ CTNH sử dụng đến para ảo hóa.

Tóm lại: Như đã hỏi, nó có thể thay đổi từ hầu như không chậm lại thành chậm nghiêm trọng.


Bây giờ nếu tôi tập trung vào VirtualBox, đó là một trình ảo hóa loại 2. Các chương trình hoàn toàn bị ràng buộc CPU sẽ ổn.


Hầu hết các chương trình này cần thiết phải chuyển một ngôn ngữ thành C Code và biên dịch nó. Khi chúng tôi chạy một mô phỏng, phần tổng hợp này là những gì được chạy. Accoridng với bạn, vậy thì có ổn không?
aarelovich

Tôi nghi ngờ hiệu suất sẽ tốt. Trải nghiệm hộp ảo của tôi bị hạn chế (tôi chủ yếu sử dụng máy trạm VMware), nhưng tôi không thấy lý do kỹ thuật nào khiến nó bị chậm.
Hennes

Làm thế nào, hiệu suất khôn ngoan, KVM so với VirtualBox (Giả sử chạy Windows 10 trên Hệ thống Linux)?
Royi

5

Trên thực tế, có vẻ như Docker có thể là một lựa chọn thậm chí tốt hơn cho những gì bạn đang làm. Docker cung cấp các container, là các hộp cát bị cô lập chạy trên cùng một kernel. Chi phí cuộc gọi / IO của hệ thống bằng không, vì các quy trình trong bộ chứa của bạn không khác gì các quy trình trên máy chủ.

Vì bạn đã chạy Linux, Docker sẽ là một cách tuyệt vời để cung cấp môi trường CentOS mà không phải cài đặt lại tất cả các máy của bạn.

Ngoài ra, hãy kiểm tra tiện ích của tôi, Scuba giúp dễ dàng chạy mọi thứ như các bản dựng bên trong một Docker container. Thay vì chạy makebạn sẽ chạy scuba make. Đó là tất cả!


Hãy cho tôi biết nếu bạn muốn thử điều này và cần bất kỳ trợ giúp nào để bắt đầu.
Jonathon Reinhart

Cảm ơn nhưng đây là một thời gian dài trước đây và quyết định đã được đưa ra để di chuyển. Nhưng tôi sẽ tính đến điều này khi phải chạy một chương trình có vấn đề khi chạy con CentOS.
aarelovich
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.