Я очень плохо знаком с HyperV и философией виртуальных машин в целом, поэтому, пожалуйста, ожидайте более или менее любопытных вопросов :)
У меня есть сервер, который используется только в качестве хоста для виртуальных машин. ОС Windows Server 2008 R2 и работает на 16 ЦП и 48 ГБ оперативной памяти.
На вышеупомянутом сервере имеется 8 виртуальных машин, каждая из которых имеет 4 ЦП и 4 ГБ ОЗУ. На этих виртуальных машинах мы выполняем некоторые задачи с интенсивным использованием процессора. Каждая машина имеет почти 100% использования процессора. После того, как я заметил низкую производительность, я пошел на хост-компьютер и начал играть с Process Explorer. Оказалось, что использование процессора очень низкое. Кроме того, I/O очень низок, и, конечно, потребление памяти является высоким, что и ожидается.
Конечно, я не ожидаю, что эти 4 виртуальных ядра, предназначенные для виртуальной машины, будут работать так же быстро, как настоящие, аппаратные 4 ядра, но все же я ожидал более высокого потребления реального оборудования.
Это нормальное поведение? Я вижу, что большая часть использования ЦП на хост-машине помечается как прерывания (что, я думаю, нормально), и все эти прерывания передаются только одному ядру (что странно). Есть ли оптимизация из коробки, которую я мог бы выполнить, чтобы, наконец, использовать всю ту вычислительную мощность, которая находится под капотом.
Мои познания в технологии виртуализации близки к смущению, поэтому я был бы благодарен за любые ссылки, которые могли бы меня просветить :)
Благодарю.