Высокое потребление CPU в простое, виртуализация QEMU и Windows 10 / Server 2019

Начиная с релиза Windows 1803 замечено высокое потребление процессора при простое виртуальной машины под управлением данной ОС, а именно 20-30%. В то время как прошлые релизы и, например, Windows 7 потребляют 0-5%. Тоже самое относится к Windows Server 2019.

Поиск в интернете привёл к багтреккеру: https://bugzilla.redhat.com/show_bug.cgi?id=1610461

Итого, необходимо в секции hyperv конфигурационного файла VM добавить следующие параметры (я оставил только их):

<hyperv>
    <synic state='on'/>
    <stimer state='on'/>
</hyperv>

После чего виртуальная машина стала более отзывчивой, и потребление процессора в хост системе понизилось до нормальных значений.

Важно, что данные параметры поддерживают не все ядра. Я использую Centos 7 и долгое время оставался на ядре 3.10.0-693.11.1.el7.x86_64 из-за особенностей работы dlm и поддержки corosync отказоустойчивых колец. С данным ядром и указанными параметрами стартовать виртуальную машину не удалось. Обновился до текущего ядра 3.10.0-1160.49.1.el7.x86_64 где всё заработало.

QEMU emulator version 2.12.0 (qemu-kvm-ev-2.12.0-44.1.el7_8.1)
Another sad thing is that MS doesn't provide dynamic frequency divider reprogramming for RTC periodic interrupt anymore (at least on 1803 and RS5), which makes RTC a kind of useless for Windows VMs due to very high default (hardcoded) RTC periodic timer interrupts rate.

Добавить комментарий

Ваш адрес email не будет опубликован.

Яндекс.Метрика