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

Уменьшение выделения ЦП для работы гостевого Windows-сервера

У меня Ubuntu 16.04 в качестве хоста и Windows Server 2012 в качестве гостя, установленного с использованием драйверов Virtio в KVM. Я могу увеличить CPU во время работы гостя, но не могу уменьшить CPU. Максимальное количество ЦП, назначенных гостю, равно 20. Я назначил 10 ЦП при запуске гостя и пытаюсь выполнить следующую команду, чтобы уменьшить ЦП до 8.

virsh setcpus --live --guest generic 8 

Однако это приводит к следующей ошибке:

error: internal error: 'can-offline' missing in reply of guest-get-vcpus

Я попытался посмотреть на команду guest-get-vcpus, но результат был следующим:

$virsh qemu-agent-command generic '{"execute":"guest-get-vcpus"}' --pretty

{
"return": [
    {
        "online": true,
        "logical-id": 0
    },
    .
    .
    .
    {
        "online": true,
        "logical-id": 9
    }
]
}

Однако результат имеет только два параметра: «онлайн» и «логический идентификатор». Однако я бы хотел, чтобы гость тоже возвращал значение can-offline.

Я установил QEMU версии 2.5 и последние версии драйверов virtio 0.1.126 и libvirtd версии 1.3.1.

Команда hotplug, которую вы пытаетесь запустить, требует, чтобы гостевой агент сотрудничал для завершения действия отключения. На самом деле он вообще не выполняет отключение - он просто просит гостевую ОС пометить vCPU как отключенный. К сожалению, поддержка этого реализована только в версии гостевого агента QEMU для Linux. Даже в последней версии QEMU 2.9.0 гостевой агент не может отключать ЦП в гостевых системах Windows.

Сообщение об ошибке, которое вы получаете, бесполезно и фактически указывает на ошибку в гостевом агенте QEMU. Я отправлю отчет об ошибке, чтобы исправить это, но это не заставит ЦП работать в автономном режиме - это просто улучшит сообщение об ошибке, в котором говорится: «ЦП в автономном режиме не поддерживается в этой гостевой ОС».