Tại sao Virtualbox sử dụng CPU 15-20% khi VM bị tạm dừng?


10

Tôi chạy VirtualBox 3.1 trên Ubuntu với một khách Win XP. Tôi đã nhận thấy sự ngạc nhiên của mình rằng khi tôi tạm dừng VM (màn hình của nó bị mờ) VirtualBox tiếp tục sử dụng 15-20% CPU của máy chủ.

Đây có phải là hành vi bình thường?

Có cách nào để tránh nó không? (Không lưu trạng thái của VM và thoát VirtualBox.)

Cảm ơn cho bất kỳ hiểu biết!

~ lara

Câu trả lời:


8

Để giảm bớt việc sử dụng CPU VirtualBox mọi lúc, hãy dùng đến cách hack kỳ lạ này.

Tạo một máy ảo mới và không cài đặt hệ điều hành cho nó. Nói với VirtualBox nó sẽ chạy DOS và cung cấp cho nó tài nguyên tối thiểu tuyệt đối. Không cài đặt O / S. Chạy nó, để cho nó lỗi khi khởi động và giảm thiểu nó.

Trong khi chạy O / S thực sự của bạn trong máy ảo thứ hai, bạn sẽ thấy mức sử dụng CPU Virtualbox nhàn rỗi của mình giảm xuống còn 3-5%.

Ý tưởng từ jed4czar: http://ubuntuforums.org/showthread.php?s=58e862a814e65eb96f8fe8389b615366&t=838073&page=2

EDIT: Để trả lời câu hỏi của bạn trực tiếp

Tại sao Virtualbox sử dụng CPU 15-20% khi VM bị tạm dừng?

Đây là một lỗi. Nó luôn luôn sử dụng CPU nhiều hơn 15-20% so với mức cần thiết, khi bất kỳ một VM nào hoạt động, trừ khi sử dụng hack được cung cấp.

Có cách nào để tránh nó không?

Xem hack ở trên.


Rất vui được biết, vbox phân bổ possibliy đã sử dụng các nguồn cpu khi khởi động
Diskilla

ooooh nó đã sửa nó cho tôi quá! Thật sự cảm ơn. Để biết thông tin, tôi đang chạy windows 8.1, VM là centos và đang hoạt động ở mức nhàn rỗi khoảng 15% cpu. VBox v4.3.12
Sebas

Tuyệt vời đây vẫn là một vấn đề.
kmarsh

4

Tôi đã thử bản hack được mô tả ở trên với DOS VM, nhưng không thành công (chạy Ubuntu 12.04 khách trên MacBook Pro với OS X). Tôi cũng đã thử các thay đổi tham số kernel được đề cập trong luồng của Oracle , một lần nữa không thay đổi. Bất kể tôi đã làm gì, khách của tôi dường như ăn CPU 15-20% mỗi người. Tuy nhiên, tôi nhận thấy rằng một vị khách mà tôi tình cờ gán 2 CPU không nhai 15-20% - nó hoạt động như mong đợi.

Chắc chắn, khi tôi chuyển đổi các CPU khác thành 2 CPU thì vấn đề đã biến mất. Từ kinh nghiệm trước đây, tôi biết rằng việc chuyển sang 2 CPU cũng cho phép tùy chọn IO APIC trong phần bo mạch chủ nên tôi nghi ngờ đó là thay đổi thực sự thú vị. Đó là, cái này:

Đã bật IOAPIC

Lưu ý rằng bạn phải tắt máy để thay đổi cài đặt này, nếu không nó bị mờ đi. Khi tôi đã kích hoạt tính năng này cho khách và khởi động lại, không có vấn đề gì nếu tôi có 1 CPU trở lên, việc sử dụng CPU 15-20% đã biến mất, vì vậy tôi nghĩ rằng tôi sẽ chia sẻ giải pháp của mình tại đây.


1

Tôi gặp vấn đề tương tự trên hộp Windows 7 Quad chạy Oracle 5 trong VM.

Theo lời khuyên của Adam, tôi đã kiểm tra tùy chọn IO APIC đã bật nhưng không có kết quả. Vì vậy, tôi đã làm theo ý tưởng của kmarsh, chỉ mất chưa đến một phút để thử và việc sử dụng bộ xử lý đã giảm từ 15-20% xuống 4-5%.

Các cài đặt được sử dụng là, Tên: Bộ nhớ Hack, Loại: Khác, Phiên bản: DOS. Kích thước bộ nhớ: 4MB, Ổ cứng: Không thêm ổ cứng ảo. Nhấp vào [Tạo]. Khởi động VM yêu cầu đĩa khởi động, tôi đã sử dụng: Host Drive 'D:', nhấp vào [Bắt đầu]. Máy ảo tuyên bố: "FATAL: Không thể đọc từ phương tiện khởi động! Hệ thống tạm dừng." Tại thời điểm đó, việc sử dụng cpu giảm xuống, vì vậy tôi thu nhỏ cửa sổ. Bắt đầu một VM thứ hai không có sự khác biệt.


Có vẻ như vấn đề này phức tạp đến mức không ai chỉnh sửa được.
kmarsh

0

Tôi đã gặp sự cố VirtualBox này trên máy P4 2 cpu với ram 3gigs chạy máy chủ CentOS 5.5.

Tôi không gặp vấn đề này trên máy i720 8cpu với 8 hợp đồng chạy Win7 64 bit. Tôi đã chạy 3 máy ảo VMWare cộng với VirtualBox, tất cả đều có bộ nhớ 2 gigs và không có vấn đề gì về CPU.

Điều này cho thấy hoặc chạy trên máy "nhỏ" hoặc trên máy chủ Linux là vấn đề.

Giải pháp của bạn đã làm việc tốt, cảm ơn.

Tôi lưu ý rằng những bài đăng trước đó đã được một năm tuổi và VirtualBox của tôi là Phiên bản 4.0.4 gần đây nhất, vì vậy Oracle vẫn chưa sửa lỗi này.


2
Tôi hy vọng rằng hình phạt hiệu năng này có liên quan đến khuôn mặt rằng các CPU mới hơn có VT-x và tương tự cho phép ảo hóa được hỗ trợ phần cứng, điều đó có nghĩa là chương trình VirtualBox không hoạt động và do đó sử dụng CPU thấp hơn. Một P4 có thể sẽ không có công nghệ VT-x và do đó sẽ phải dịch các cuộc gọi hệ thống qua phần mềm và kết quả là sử dụng nhiều CPU hơn.
Mokubai

Điều này phải được sửa chữa ngay bây giờ. sử dụng máy chủ Ubuntu và khách XP chạy VirtualBox v4.3.6 khi tôi tạm dừng khách, mức sử dụng CPU giảm xuống dưới 1%
Người tìm kiếm

0

Các câu trả lời khác không giải thích hoặc sửa lỗi cho tôi (máy chủ Debian, tạm dừng Ubuntu khách). Oracle có một phần cho việc này:

Một số khách Linux có thể gây ra tải CPU cao ngay cả khi hệ thống khách có vẻ không hoạt động. Điều này có thể được gây ra bởi tần số hẹn giờ cao của kernel khách. Một số bản phân phối Linux, ví dụ Fedora, gửi hạt nhân Linux được định cấu hình cho tần số hẹn giờ 1000Hz. Chúng tôi khuyên bạn nên biên dịch lại kernel khách và chọn tần số hẹn giờ là 100Hz.

Các hạt nhân Linux được vận chuyển cùng với Red Hat Enterprise Linux, cũng như các hạt nhân của các bản phân phối Linux có liên quan, như CentOS và Oracle Linux, hỗ trợ bộ chia tham số kernel = N. Do đó, các hạt nhân như vậy hỗ trợ tần số hẹn giờ thấp hơn mà không cần biên dịch lại. Chúng tôi khuyên bạn nên thêm bộ chia tham số kernel = 10 để chọn tần số bộ đếm thời gian kernel là 100Hz.

Nguồn: Khách Linux có thể gây ra tải CPU cao

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.