Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

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

Какая версия QEMU-KVM у вас установлена?

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

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

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

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

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

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