Как знают многие администраторы решения для виртуализации и доставки настольных ПК предприятия VMware Horizon 7, при использовании графических карт NVIDIA есть возможность применять режим vSGA, обеспечивающий использование общего графического адаптера несколькими виртуальными машинами. Режим vSGA - это самый простой и эффективный способ использовать аппаратное ускорение для графики в виртуальных машинах.
Недавно в компании VMware провели тестирование производительности режима vSGA на платформе VMware Horizon 7, сравнив его с программным CPU-only, с одной стороны, и режимом GRID vGPU, с другой. Забегая вперед скажем, что конечно же vSGA показал лучшие результаты, чем CPU-only, при этом общий уровень оказался не сильно хуже, чем оптимизированный режим GRID vGPU.
Итак, давайте посмотрим на тестовую конфигурацию (тесты проводились как внутри десктопной ВМ на хосте, так и из клиента Horizon Client, расположенного на этом же хосте, чтобы убрать воздействие сетевого взаимодействия на тест):
Параметр
Значение или конфигурация
VCPUS
2
Memory
8 GB
Disk
64 GB
OS
Windows 10 Enterprise
Applications Installed
Office 2013, Chrome Browser, Adobe Reader
VDI Protocol
Blast
VRAM
96 MB
vSGA (3D Memory)
512 MB
vGPU Profile
M60-1b
VMware Horizon
Version 7.6
VDI desktop resolution
1600x1200
С точки зрения программного обеспечения, использовались следующие рабочие нагрузки:
Приложения Microsoft Office
Adobe Acrobat для открытия документов
Воспроизведение видео с YouTube
Просмотрщики CAD-файлов
Движок WebGL
Эксперимент 1
В первом эксперименте записывалось содержимое экрана пользователей (напрямую в VDI-десктопе, без использования удаленного протокола доступа) в трех конфигурациях и сравнивалось в разрезе двух основных показателей:
Отображаемое число кадров в секунду (frames per second, FPS)
Плавность картинки в десктопе vSGA в сравнении с CPU-only десктопом
Результатом первого теста для vSGA (анимация в PowerPoint) является более плавная картинка с большим числом FPS (поэтому запись с vSGA длится дольше):
Эти параметры численно нормализовали к уровню для vGPU и представили на графике (чем выше столбики, тем лучше):
Также в рамках этого эксперимента в PowerPoint запустили еще небольшое видео, чтобы наглядно продемонстрировать преимущество vSGA:
Эксперимент 2
Во время второго эксперимента в VMware запускали воспроизведение видео в PowerPoint из клиента Horizon Client. Там были проанализированы скриншоты видео, чтобы подсчитать FPS во всех трех режимах (CPU-only, vSGA и vGPU). Результаты также нормализовали к уровню vGPU:
На правом графике также показано нормализованное число артефактов, возникающих при отображении видео - в режиме CPU-only их достаточно много, и это видно невооруженным глазом.
Также в рамках эксперимента сравнили скриншоты, сделанные из видео на YouTube, напрямую в десктопе без удаленного доступа по протоколу PCoIP:
Очевидно, что в vSGA картинка более четкая. А вот при сравнении vGPU и vSGA уже нет столь явного различия:
Эксперимент 3
В этом эксперименте в десктопе просто запустили бенчмарк WebGL для трех режимов - CPU-only, vSGA и vGPU.
Тест / Режим
vSGA
CPU-only
vGPU (M60-1b)
WebGL Aquarium
40 fps
4 fps
60 fps
WebGL Unity3D
42 371
23 020
56 307
WebGL Bmark
1174
720
2079
Обратите внимание, как плохо справляется режим CPU-only с тестом Aquarium. Ну и в целом видно, что vSGA работает вполне сносно, хотя и не дотягивает до vGPU.
Выводы тестирования очевидны - используйте vSGA и vGPU, если в ваших десктопах пользователи работают с графикой. Это существенно увеличивает производительность и плавность картинки. Кстати, если вы используете vSGA, то сможете делать vMotion виртуальных машин между хостами, даже если на них стоят разные графические адаптеры, а вот для vMotion с vGPU нужно унифицировать хост-серверы в этом плане (включая одинаковые версии драйверов).