Hyper-V и Hyper-threading: включен или выключен?

23

С новыми центральными процессорами Xeon, поддерживающими Hyper-Threading, каковы нынешние разумные подходы в отношении их использования (или нет) на хост-компьютере Hyper-V?

Изначально у меня сложилось впечатление, что включение его в среде виртуального хоста может иметь пагубные последствия, поскольку «лишние» процессоры не являются настоящими ядрами. Тем не менее, я также прочитал (неподтвержденные) комментарии по аналогии с тем, как MS выполняет тяжелую работу, чтобы Hyper-V работал хорошо в среде Hyper-Threading.

Есть ли у кого-нибудь солидная информация или опыт в этом отношении? Ура!

CapBBeard
источник

Ответы:

5

Старая проблема с Hyper-Threading в Virtual Server 2005, не будучи чрезмерно технической, заключается в том, что кэш ЦП был отравлен, то есть почти ничего не кэшировал, потому что контексты того, что происходило в каждом потоке, не были связаны, что заставляло их конкурировать за встроенный кэш.

Новые чипы имеют больший и умный кэш, так что это меньше проблем.

Идеально ли включать или выключать? Это действительно зависит от рабочей нагрузки. Если оба потока работают с одной и той же виртуальной машиной и одной и той же задачей, то это, безусловно, будет БОЛЬШИМ преимуществом. Если бы они делали несвязанные вещи с большим количеством случайных операций ввода-вывода ОЗУ (например, с несколькими разными виртуальными машинами), это привело бы к тому, что для каждого из них была бы доступна только половина кеша, что теоретически могло быть медленнее. На самом деле это редко случается.

Если у вас чипы старшего поколения, но вы можете проверить размеры кеша чипа: при виртуализации, чем больше кеш, тем лучше. Оперативная память действительно НАМНОГО медленнее, чем процессоры, но не ближе, чем жесткие диски.

ПРИМЕЧАНИЕ: Что вы читаете , что говорит «выключить» было найдено в отношении чипов , которые были одноядерный с Hyper-Threading - Например , это был официальный ответ обратно в тот же день - (2005/2006?) Http: //www.VirtualServerFAQ .com / тики-index.php? страница = VirtualServerHostDualCore

Стив Радич http://www.VirtualServerFAQ.com

Стив Радич-BitShop.com
источник
21

Согласно Windows IT Pro, вы хотите оставить его включенным:

О. Новый четырехъядерный процессор Intel Core i7 обеспечивает гиперпоточность, которая разделяет каждое ядро ​​процессора на два виртуальных ядра для (потенциально) повышения производительности.

Проблема с Hyper-V и гиперпоточностью заключается в том, что вы назначаете несколько процессорных ядер каждой виртуальной машине (ВМ). Представьте, что вы назначаете один процессор для каждой из двух гостевых виртуальных машин из консоли управления Hyper-V, думая, что каждая из них будет использовать отдельное ядро. Что делать, если гипервизор назначает каждую виртуальную машину одному и тому же физическому ядру, а каждая получает виртуальное ядро? Потенциально вы получите паршивую производительность и три физических ядра, которые мало что сделают, и вам бы хотелось, чтобы каждая виртуальная машина получала свое собственное физическое ядро.

К счастью, это не так. Microsoft проделала большую работу над Hyper-Threading и Hyper-V. По сути, хотя Hyper-Threading иногда помогает повысить производительность, он никогда не повредит производительности, поэтому Hyper-Threading следует включить.

Шон Эрп
источник
Хм, спасибо за ответ. Это может быть то, что я прочитал первоначально. Они говорят, чтобы оставить это включенным, но это кажется довольно пустым; Я не особенно убежден. Может быть, это только я.
CapBBeard
6

Программы, которые знают о гиперпоточности, способны различать физическое ядро ​​и логическое (виртуальное) ядро ​​и соответственно распределять ресурсы.

Гиперпоточность снижает стоимость переключения контекста, позволяя сохранять состояния двух процессов в любой момент времени, а не только одно состояние за раз. Переключение контекста, как правило, считается очень дорогим, потому что вам нужно загрузить все состояние процесса в CPU. Это означает, что если у вас запущен процесс, интенсивно использующий ЦП, то многопоточный ЦП может часто переключаться между этим процессом и другими без значительного снижения производительности.

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

грабить
источник
2

Я не изучал эту проблему подробно, но Microsoft не рекомендует использовать гиперпоточность в Exchange 2010 из-за проблем «планирования и мониторинга емкости». Возможно, вы захотите протестировать свои собственные рабочие нагрузки, прежде чем выбрать одну или другую конфигурацию.

duffbeer703
источник
-2

Гиперпоточность: вау, бесплатные процессоры!

Выключи это. Хотя современные реализации одновременной многопоточности (SMT), также известные как гиперпоточность, могут абсолютно повысить пропускную способность ЦП для большинства приложений, преимущества Exchange 2013 не перевешивают негативные последствия. Оказывается, что при включенной гиперпоточности может быть значительное влияние на использование памяти на серверах Exchange из-за того, как сборщик мусора на сервере .NET выделяет кучу. Серверный сборщик мусора проверяет общее количество логических процессоров при запуске приложения и выделяет кучу для каждого логического процессора. Это означает, что использование памяти при запуске для одного из наших сервисов, использующих серверный сборщик мусора, будет почти вдвое больше при включенном гиперпоточности по сравнению с выключенным. Это значительное увеличение памяти, Наряду с анализом фактического увеличения пропускной способности ЦП для рабочих нагрузок Exchange 2013 во внутренних лабораторных тестах мы получили рекомендацию о том, что гиперпоточность должна быть отключена для всех серверов Exchange 2013. Преимущества не перевешивают негативное влияние.

Скопировано с: http://blogs.technet.com/b/exchange/archive/2013/05/06/ask-the-perf-guy-sizing-exchange-2013-deployments.aspx

user226342
источник
3
Я запутался; почему вы упоминаете обмен? вопрос о влиянии на гипервизор. И фактически в параграфе ниже скопированного текста говорится, что гиперпоточность не влияет на виртуализированный сервер обмена, если я правильно понял.
Энди