Я полагаю, этот вопрос может относиться к любой технологии виртуализации, но я пытаюсь понять некоторые детали, характерные для Microsoft Hyper-V Server, и то, как ресурсы виртуального ЦП распределяются по физическим ресурсам ЦП.
Похоже, что Hyper-V Server планирует виртуальные ЦП из каждой виртуальной машины циклически по всем доступным физическим ресурсам ЦП с использованием квантования времени. По умолчанию все виртуальные машины планируются одинаково, но приоритеты и пороговые значения ЦП виртуальной машины можно отрегулировать, чтобы эффективно изменить частоту их планирования.
Здесь есть некоторые недостающие детали, которые я не могу найти нигде в Интернете. Это больше для личного любопытства, но это может повлиять на то, как я буду балансировать виртуальные машины между физическими хостами в будущем.
(1) Меняет ли загрузка ЦП на ВМ свой эффективный приоритет по сравнению с бездействующими ВМ? Предположим, у меня есть две виртуальные машины, каждая с одним виртуальным процессором, которые борются за одно физическое ядро. Если ВМ 1 имеет высокую загрузку ЦП, а ВМ 2 простаивает, из N слайсов, доступных в заданный период времени для одного ресурса, обе ВМ получают ~ N / 2 слайсов? Похоже, было бы лучше, чтобы ВМ 1 принимала ближе к N срезов.
(2) Поддерживает ли Hyper-V автоматически какое-либо физическое соответствие ЦП? Предположим, у меня есть одна виртуальная машина, два физических процессора и неоднородный доступ к памяти (где каждый физический процессор имеет свою собственную локальную память, доступ к которой осуществляется быстрее). Планирует ли Hyper-V виртуальные ЦП виртуальной машины на обоих физических процессорах? Похоже, что если выделенная память виртуальной машины полностью умещается в одном месте памяти, то было бы оптимальным запланировать виртуальную машину на этом физическом процессоре, а не на обоих процессорах.
(1) Hyper-V предоставит каждому из ваших гипотетических виртуальных процессоров равные шансы на запуск, так как их веса одинаковы. Однако, когда ВП из ВМ 2 истекает из-за бездействия, это свободное время будет выделено ВП из ВМ 1. Таким образом, на практике ВМ 1 будет использовать большую часть мощности ЦП.
(2) Да, Hyper-V поддерживает «идеальный физический процессор», связанный с каждым виртуальным процессором. Вице-президент обычно будет работать с идеальным физическим процессором. Более того, идеальный физический процессор для виртуальных процессоров виртуальной машины, если это вообще возможно, будет находиться в том же физическом узле NUMA, что и память, назначенная виртуальной машине. Для виртуальной машины с несколькими виртуальными процессорами виртуальные машины будут иметь отдельные идеальные физические процессоры, но в пределах одного физического узла NUMA.
Обратите внимание, что виртуальные машины размером больше физического узла NUMA будут охватывать более одного узла, что приведет к недетерминированному планированию и производительности.