Всегда относился к Intel Hyper-Threading как к маркетинговому продукту. Но недавно я взглянул на эту технологию под другим углом.
Настал момент, когда лицензия vSphere Standart позволила создавать и запускать виртуальные машины с количеством виртуальных процессоров равных 8. О том, чем это грозит в случае установленного процессора с 4-мя физическими ядрами и поддержкой Hyper-Threading, читайте дальше.
Думаю, данный материал нужно рассматривать как продолжение моих попыток ускорить работу терминального сервера, про это я писал тут.
Про Hyper-Threading
Следуя слогану Intel «Чем больше задач, тем выше эффективность работы», чтобы увидеть результат я буду запускать в разных сессиях на терминальном сервере просмотр фильмов. Чем больше я смогу запустить фильмов, тем лучше; снижение нагрузки на процессор также приветствуется.
На VM, подготовленную для тестирования, установлена ОС ws2008 R2 Standart. На момент тестирования были установлены все обновления. Для воспроизведения роликов установлен кодек и плеер DIVX.
Тестовый стенд собран из сервера HP ML350 G6 c процессором Intel Xeon E5620 1шт.
E5620 Specifications
На сервер установлена версия ESXi сервера 5.1-1483097.
Про логику работы ESXi + Hyperthreading на Хабре опубликован интересный материал «Оптимизация работы виртуальной инфраструктуры на базе VMWare vSphere», рекомендую к ознакомлению.
Несколько экспериментов с размерами vcpu, технология intel HT активна, воспроизводился тестовый ролик с качеством 480p.
Как видно из результатов, при использовании 8 потоков на терминальном сервере удалось запустить еще одну копию фильма и получить средний прирост в 20%. А вот разница между виртуальными процессорами и виртуальными ядрами в случае одного физического процессором незаметна.
Нагрузку я фиксировал с VM, если фиксировать с хоста — цифры будут другими, по какой-то причине хост сервер фиксирует отличный от VM результат. Вот как это выглядит при работе реальных пользователей:
В следующих тестах я буду выключать HT в биосе и воспроизводить ролики с качеством 480р, 720р и 1080р.
На сервер установлена ОС ws2012 R2 Standart и установлены все обновления на момент тестирования.
Тестовая VM портировалась с платформы VMware на платформу Microsoft.
Показания производительности снимались с хоста:
На сервер установлена ОС ws2008 R2 Standart и установлены все обновления на момент тестирования.
Показания производительности снимались с хоста, однако платформа Hyper-V 2008 с активным HT не позволила создать VM с 8 vcpu, в связи с чем получены странные результаты.
После того как, я не смог запустить VM в конфигурации 8 vcpu решил проверить работу Hyper-V 2008 в связке с VDI. Были созданы несколько VM с ОС Windows 7 x86, все обновления установлены.
Результаты для 4 vcpu per VM:
Результаты для 2 vcpu per VM:
Конфигурация с 2 vcpu per VM показала результат лучше, очень заметно для ролика 1080р.
Эти данные будут использоваться как эталонные:
Для сравнения буду использовать результаты, полученные для видео 480р:
Можно сделать следующие выводы:
Использование HT дает результат, который можно заметить в много поточных задачах. Пользу HT в задачах более «узких» нужно проверять.
В проведенных тестах явного лидера между платформами нет. А обладателям лицензий ws2008, которые используются для Hyper-V, стоит задуматься про апдейт, если есть необходимость использовать большие VM.
Получить результат максимально приближенный к ФС позволит инфраструктура VDI.
Думаю, данный результат обеспечил кодек RemoteFX 8.
Настал момент, когда лицензия vSphere Standart позволила создавать и запускать виртуальные машины с количеством виртуальных процессоров равных 8. О том, чем это грозит в случае установленного процессора с 4-мя физическими ядрами и поддержкой Hyper-Threading, читайте дальше.
Думаю, данный материал нужно рассматривать как продолжение моих попыток ускорить работу терминального сервера, про это я писал тут.
Про Hyper-Threading
Принцип действия Hyper-Threading основывается на том, что в каждый момент времени только часть ресурсов процессора используется при выполнении программного кода. Неиспользуемые ресурсы также можно загрузить работой — например, задействовать для параллельного выполнения еще одного приложения либо другого потока этого же приложения.
Следуя слогану Intel «Чем больше задач, тем выше эффективность работы», чтобы увидеть результат я буду запускать в разных сессиях на терминальном сервере просмотр фильмов. Чем больше я смогу запустить фильмов, тем лучше; снижение нагрузки на процессор также приветствуется.
На VM, подготовленную для тестирования, установлена ОС ws2008 R2 Standart. На момент тестирования были установлены все обновления. Для воспроизведения роликов установлен кодек и плеер DIVX.
Тестовый стенд собран из сервера HP ML350 G6 c процессором Intel Xeon E5620 1шт.
E5620 Specifications
Launch Date Q1'10
of Cores 4
of Threads 8
Base Frequency 2.4 GHz
Начну с результатов ESXi
На сервер установлена версия ESXi сервера 5.1-1483097.
Про логику работы ESXi + Hyperthreading на Хабре опубликован интересный материал «Оптимизация работы виртуальной инфраструктуры на базе VMWare vSphere», рекомендую к ознакомлению.
Несколько экспериментов с размерами vcpu, технология intel HT активна, воспроизводился тестовый ролик с качеством 480p.
Как видно из результатов, при использовании 8 потоков на терминальном сервере удалось запустить еще одну копию фильма и получить средний прирост в 20%. А вот разница между виртуальными процессорами и виртуальными ядрами в случае одного физического процессором незаметна.
Нагрузку я фиксировал с VM, если фиксировать с хоста — цифры будут другими, по какой-то причине хост сервер фиксирует отличный от VM результат. Вот как это выглядит при работе реальных пользователей:
В следующих тестах я буду выключать HT в биосе и воспроизводить ролики с качеством 480р, 720р и 1080р.
Результаты Hyper-V 2012
На сервер установлена ОС ws2012 R2 Standart и установлены все обновления на момент тестирования.
Тестовая VM портировалась с платформы VMware на платформу Microsoft.
Показания производительности снимались с хоста:
Результаты Hyper-V 2008
На сервер установлена ОС ws2008 R2 Standart и установлены все обновления на момент тестирования.
Показания производительности снимались с хоста, однако платформа Hyper-V 2008 с активным HT не позволила создать VM с 8 vcpu, в связи с чем получены странные результаты.
После того как, я не смог запустить VM в конфигурации 8 vcpu решил проверить работу Hyper-V 2008 в связке с VDI. Были созданы несколько VM с ОС Windows 7 x86, все обновления установлены.
Результаты для 4 vcpu per VM:
Результаты для 2 vcpu per VM:
Конфигурация с 2 vcpu per VM показала результат лучше, очень заметно для ролика 1080р.
Результаты физического сервера ws2008 R2
Эти данные будут использоваться как эталонные:
Сравнения всех платформ
Для сравнения буду использовать результаты, полученные для видео 480р:
Можно сделать следующие выводы:
Использование HT дает результат, который можно заметить в много поточных задачах. Пользу HT в задачах более «узких» нужно проверять.
В проведенных тестах явного лидера между платформами нет. А обладателям лицензий ws2008, которые используются для Hyper-V, стоит задуматься про апдейт, если есть необходимость использовать большие VM.
Получить результат максимально приближенный к ФС позволит инфраструктура VDI.
Думаю, данный результат обеспечил кодек RemoteFX 8.