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

Могу ли я использовать полную производительность физических ядер ЦП гипервизора при запуске приложения с высокой загрузкой ЦП внутри виртуальной машины?

В настоящее время у меня есть пул приложений IIS, работающий на физическом сервере с двумя четырехъядерными процессорами, которые в среднем загружаются на 50% по всем ядрам. Мне нужно сделать это приложение высокодоступным, и после изучения наших вариантов я остановился на создании кластера Hyper V с этим приложением на виртуальной машине.

Меня беспокоит то, что виртуальная машина имеет только 4 виртуальных ЦП, и, судя по характеристикам, которые я ранее видел с другим сервером Hyper V, кажется, что 1 виртуальный ЦП может максимально использовать только одно ядро ​​физического ЦП. Даже если vCPU установлен на 100%, он не сможет использовать вычислительную мощность других физических ядер. Если это наблюдение верно, то я бы уже использовал 100% из 4 ядер, исходя из моего текущего использования 50% для 8 ядер (без учета накладных расходов, присущих самой виртуализации).

Исследуя это, я наблюдал за Брайаном Элертом. YouTube видео об использовании ЦП гипервизора и прочтите его концепцию виртуального ЦП Hyper-v Запись вики-сайте Tecknet. Исходя из моего понимания того, что говорит Брайан, поскольку процесс w3wp.exe, который запускает пул приложений, вращается и разрывает рабочие потоки для обработки подключений отдельных пользователей к нашему веб-сайту, эти дискретные подключения должны обеспечивать точку останова, в которой виртуальный ЦП может переходить от одного физического процессора к другому достаточно быстро, чтобы я мог использовать производительность всех 8 ядер физической системы, когда виртуальная машина имеет только 4 виртуальных ЦП.

Это все еще меня не устраивает и противоречит тому, что я видел. Поскольку один виртуальный ЦП должен завершить свою текущую обработку, прежде чем его можно будет переключить на другой физический ЦП, это будет означать, что один виртуальный ЦП не может достичь более высокого чистого использования физических ЦП, чем 100% одного ядра. Если потоки приложений не имеют точек останова, тогда это будет 100% одного физического ядра, если потоки приложений имеют точки останова, которые позволят гипервизору переместить виртуальный ЦП на следующее физическое ядро, тогда использование может быть примерно 25 % каждого из физических ядер в четырехъядерной системе, при этом итоговая сумма по-прежнему ограничивается 100% от одного ядра.

Основываясь на этом рассуждении, может показаться, что 1 виртуальный ЦП никогда не сможет использовать больший общий% всех физических ядер, чем 100% одного ядра, когда использование виртуальных ЦП физических ядер суммируется по всем ядрам.

В конечном итоге это будет означать, что я не могу достичь уровня производительности 8-ядерной системы изнутри виртуальной машины, даже если виртуальная машина имеет 4 виртуальных ЦП и работает в системе с 16, 32 или даже 64 физическими ядрами.

Есть ли способ добиться желаемой производительности на одной виртуальной машине?

На самом деле с процессорами последнего поколения вы можете ожидать снижения вычислительной мощности на 1-3% (при условии, что что-то странное не произойдет), и если вы назначите 4 виртуальных ЦП, ваша виртуальная машина будет реагировать так, как будто у нее 4 физических процессора. ядра (ядра HTT учитываются только для приложений, которые придерживаются ALU).

На стороне примечания; эта запись Technet Wiki чрезвычайно сбивает с толку, и я думаю, что там довольно много неверной информации.

Основываясь на моем понимании того, что говорит Брайан, поскольку процесс w3wp.exe, который запускает пул приложений, вращается и разрывает рабочие потоки для обработки подключений отдельных пользователей к нашему веб-сайту, эти дискретные подключения должны обеспечивать точку останова, в которой vCPU может переходить от одного физического процессора к другому достаточно быстро, чтобы я мог использовать производительность всех 8 ядер физической системы, когда виртуальная машина имеет только 4 виртуальных ЦП.

Вернемся к чтению основ работы с процессорами. Точка. НЕЛЬЗЯ (!) Обмануть 4 виртуальных ядра и использовать 8 физических ядер до 100%. ВНЕ ВИРТУАЛЬНОЙ МАШИНЫ не видно «точки разрыва».

Вы в основном ограничены 4 виртуальными ядрами на виртуальную машину. Теперь вы можете кластеризовать / NLB и использовать несколько виртуальных машин.