Почему неиспользуемая виртуальная машина Windows использует так много процессора?

12

У меня есть две виртуальные машины, работающие в качестве гостей на платформе виртуализации KVM, работающей в Ubuntu 10.04. Одна виртуальная машина - это система Ubuntu 10.04, другая - система Windows 7. Когда обе машины полностью вышли из системы, машина Linux использует 1% ЦП, Windows - 45-50%, в соответствии с топом. Графики в virt-manager, похоже, подтверждают это. На образе Win7 не установлено ничего, что могло бы работать в фоновом режиме; это так свежо, как может быть.

Почему виртуальная машина Windows использует намного больше, чем виртуальная машина Linux, когда оба они вышли из системы и работают вхолостую?

Редактировать:

Я установил гостя с хранилищем paravirt и сетевыми драйверами с самого начала. Я не верю, что есть какие-то другие драйверы, которые мне не хватает, я не прав?

По словам менеджера задач гостя, он действительно простаивает. Taskman занимает около 1 или 2% гостевого процессора, но нет никаких других процессов, занимающих какое-либо время процессора.

Джефф Шатток
источник

Ответы:

4

Какую версию QEMU-KVM вы используете?

Мы видели эту проблему в версиях 0.12.3 и ниже, но, похоже, на 0.12.4 это не слишком большая проблема. Также проверьте, работают ли заставки. Если вы используете соединение VNC, тогда оно может работать там, и загрузка ЦП не будет внутри ВМ - она ​​будет использована процессом KVM.

trevoro
источник
1
0.12.3. Я соберу 0.12.4 и посмотрю, пройдет ли это.
Джефф Шатток
1
И это действительно так. Windows нашла драйвер для виртуального процессора Qemu 0.12.4, и эта проблема исчезла после перезагрузки гостя.
Джефф Шатток
7

Я знаю, что мой ответ приходит через 100 лет, но: для дальнейшего ознакомления, пожалуйста, смотрите здесь:

http://forum.proxmox.com/threads/5770-Windows-guest-high-context-switch-rate-when-idle

Если это так, то вот решение: http://support.microsoft.com/kb/895980

На моем хосте x86_64 kvm использование моего гостевого процессора Win2K3 R2 (когда гость бездействовал) упало с ~ 30% -40% до 6%

Eugen
источник
2
Поток в Proxmox содержит полезную информацию: удаление виртуального оборудования планшета USB из виртуальной машины Windows приведет к уменьшению количества переключений контекста. Моя неработающая виртуальная машина Windows перешла с 20-процентного хост-процессора на 5-процентный хост-процессор.
Colin 't Hart
Спасибо, сработало для меня. Виртуальное устройство планшета отправляло бесконечные запросы на прерывание
michaelbn
1

Тот факт, что Windows недавно установлена, не означает, что она не запускает фоновые процессы или службы. Контролируйте Windows-машину с помощью SNMP или диспетчера задач и попытайтесь выяснить, действительно ли она простаивает. Как сказал Массимо, вы также должны установить драйверы для виртуализации для вашей гостевой ОС. Я никогда не видел бездействующей виртуальной машины, которая бы брала ресурсы процессора с хоста.

Мирча Вуцовичи
источник
0

Я вообще ничего не знаю о KVM, но на VMware это может произойти, если вы не устанавливаете инструменты VMware на виртуальной машине, так что у нее нет подходящих драйверов устройств для виртуализированного оборудования и он не может установить его виртуальный процессор находится в режиме ожидания, когда он фактически ничего не делает, вместо этого используется простой цикл ожидания (который фактически соответствует тому, что процессор полностью занят циклом).

Может быть, есть что-то похожее на инструменты VMware, которые вы должны установить на свою виртуальную машину?

Massimo
источник
-2

Прежде всего, перестаньте сравнивать Windows и Linux или ожидайте, что они будут вести себя одинаково. Они разные.

Окна никогда не простаивают. Он выполняет много фоновых задач, и из моего короткого опыта работы с Win 7 он делает больше, чем, скажем, XP. Одна вещь, которая поможет облегчить нагрузку, это начать закрывать необходимые службы, такие как служба индексации.

Джон Гарденье
источник
1
Linux также запускает много фоновых «сервисов». И оригинальный постер подтвердил, что диспетчер задач показывает 1-2% ЦП, используемый в гостевой системе Windows.
Colin 't Hart
@Colin, как мы все знаем, диспетчер задач лжет о загрузке процессора. Кто здесь не видел, чтобы он сообщал о 98% простоя, а система все еще не реагирует на температуру процессора из-за нагрузки? Я также хорошо знаю, что Linux также выполняет фоновые задачи, но я хотел подчеркнуть, что Linux и Windows - совершенно разные животные. Те, кто пытается сравнить одно с другим, всегда будут бороться больше, чем те, кто просто признает, что они разные, и рассматривает каждого как отдельную сущность.
Джон Гарденье
1
Это не имеет никакого смысла.
Colin 't Hart,
@Colin, это, вероятно, потому что такого рода вещи выходят из вашей сферы. Любая Windows, которая была вокруг некоторое время, поймет, что я написал о загрузке процессора. Любой, кто работает с Windows и Linux, должен понимать все остальное. Поскольку вы не работаете в одной и той же области, я не ожидаю, что вы поймете эти вещи, так же, как я ничего не пойму, Oracle.
Джон Гарденье
С чего ты взял, что я не работаю в той же области?
Colin 't Hart