почему Virtualbox использует 15-20% ЦП, когда виртуальная машина приостановлена?


10

Я запускаю VirtualBox 3.1 в Ubuntu с гостем Win XP. К своему удивлению я заметил, что когда я приостанавливаю виртуальную машину (ее экран не работает), VirtualBox продолжает использовать 15-20% центрального процессора хоста.

Это нормальное поведение?

Есть ли способ избежать этого? (Без сохранения состояния виртуальной машины и выхода из VirtualBox.)

Спасибо за любые идеи!

~ лара

Ответы:


8

Чтобы постоянно уменьшать использование процессора VirtualBox, прибегайте к этому странному хаку.

Создайте новую виртуальную машину и не устанавливайте на нее операционную систему. Скажите VirtualBox, что он запустит DOS и предоставит ему абсолютный минимум ресурсов. Не устанавливайте O / S. Запустите его, дайте ему ошибку при загрузке и уменьшите его.

Во время работы вашего реального O / S во второй виртуальной машине вы увидите, что загрузка ЦП Virtualbox снизится до 3-5%.

Идея от jed4czar: http://ubuntuforums.org/showthread.php?s=58e862a814e65eb96f8fe8389b615366&t=838073&page=2

РЕДАКТИРОВАТЬ: Чтобы ответить на ваши вопросы напрямую

почему Virtualbox использует 15-20% ЦП, когда виртуальная машина приостановлена?

Это ошибка. Он всегда использует на 15-20% больше ЦП, чем нужно, когда какая-либо виртуальная машина работает, если только не используется предоставленный взлом.

Есть ли способ избежать этого?

Смотри взлом выше.


приятно знать, что vbox выделяет, возможно, использованные cpu-источники при запуске
Diskilla

оооо, это исправило это и для меня! Здорово, спасибо. Для информации, я использую Windows 8.1, виртуальная машина работает на Centos и потребляла около 15% процессорного времени. VBox v4.3.12
Sebas

Удивительно, что это все еще проблема.
кмарш

4

Я попробовал описанный выше взлом на виртуальной машине DOS, но безуспешно (запустив Ubuntu 12.04 на MacBook Pro с OS X). Я также попробовал изменения параметров ядра, упомянутые в потоке Oracle , опять же без изменений. Независимо от того, что я сделал, мои гости, казалось, съели 15-20% процессорного времени каждый. Однако я заметил, что один гость, которому я назначил 2 ЦП, не жевал 15-20% - он вел себя как ожидалось.

Конечно же, когда я переключил остальные на 2 процессора, проблема исчезла. Из предыдущего опыта я знаю, что переключение на 2 ЦП также включает опцию IO APIC в разделе материнских плат, поэтому я подозревал, что это было действительно интересное изменение. То есть этот:

IOAPIC включен

Обратите внимание, что для изменения этого параметра необходимо выключить аппарат, в противном случае он будет недоступен. После того, как я включил это на гостях и перезапустил, не имело значения, если у меня был 1 или более ЦП, загрузка ЦП 15-20% ушла, поэтому я решил поделиться своим решением здесь.


1

У меня была такая же проблема на Windows 7 Quad Box с Oracle 5 в виртуальной машине.

Следуя совету Адама, я проверил опцию Enabled IO APIC, но безрезультатно. Итак, я последовал идее kmarsh, которая заняла, вероятно, менее минуты, и загрузка процессора снизилась с 15-20% до 4-5%.

Были использованы следующие параметры: Имя: Память хака, Тип: Другое, Версия: DOS. Объем памяти: 4 МБ, Жесткий диск: не добавляйте виртуальный жесткий диск. Нажмите [Создать]. При запуске виртуальной машины запрашивает загрузочный диск, я использовал: Host Drive 'D:', нажмите [Start]. Виртуальная машина сообщает: «FATAL: не удалось прочитать с загрузочного носителя! Система остановлена». В этот момент использование процессора упало, поэтому я свернул окно. Запуск второй виртуальной машины не имеет значения.


Кажется, эта проблема настолько сложна, что никто не сможет ее исправить.
kmarsh

0

Я столкнулся с этой проблемой VirtualBox на 2-процессорной машине P4 с оперативной памятью 3 ГБ на хосте CentOS 5.5.

Я не сталкивался с этой проблемой на 8-процессорной машине i720 с 8 гигабайтами под управлением 64-битной Win7. Я запустил 3 виртуальных машины VMWare плюс VirtualBox, все с 2-гигабайтной памятью, и у меня не было проблем с процессором.

Это говорит о том, что проблема заключается в том, чтобы работать на «маленькой» машине или на хосте Linux.

Ваше решение сработало хорошо, спасибо.

Я отмечаю, что этим более ранним публикациям исполнился год, и мой VirtualBox является самой последней версией 4.0.4, поэтому Oracle еще не исправила эту ошибку.


2
Я ожидаю, что это снижение производительности связано с тем, что более новые процессоры имеют VT-x и аналогично, чтобы разрешить аппаратную виртуализацию, что будет означать, что программа VirtualBox не выполняет свою работу и, следовательно, снижает загрузку ЦП. У P4, скорее всего, не будет технологии VT-x, и поэтому ему придется переводить системные вызовы с помощью программного обеспечения и в результате использовать больше ЦП.
Мокубай

Это, должно быть, уже исправлено. при использовании хоста Ubuntu и гостевой XP под управлением VirtualBox v4.3.6, когда я приостанавливаю гостевую систему, загрузка ЦП падает ниже 1%
Seeker

0

Другие ответы не объясняют и не исправляют ошибку для меня (хост Debian, приостановленный гость Ubuntu). У Oracle есть раздел для этого:

Некоторые гостевые системы Linux могут вызывать высокую загрузку процессора, даже если гостевая система не работает. Это может быть вызвано высокой частотой таймера гостевого ядра. Некоторые дистрибутивы Linux, например Fedora, поставляют ядро ​​Linux, настроенное на частоту таймера 1000 Гц. Рекомендуем перекомпилировать гостевое ядро ​​и выбрать частоту таймера 100 Гц.

Ядра Linux, поставляемые с Red Hat Enterprise Linux, а также ядра связанных дистрибутивов Linux, таких как CentOS и Oracle Linux, поддерживают разделитель параметров ядра = N. Следовательно, такие ядра поддерживают более низкую частоту таймера без перекомпиляции. Мы предлагаем вам добавить параметр ядра divider = 10, чтобы выбрать частоту гостевого таймера ядра 100 Гц.

Источник: Гости Linux могут вызвать высокую загрузку процессора

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.