Очень интересное сравнение протоколов доступа к виртуальным ПК и приложениям в инфраструктуре VMware Horizon 7 появилось на одном из блогов, посвященных технологиям виртуализации. Коллега сравнивал производительность проверенного временем PCoIP и пришедшего ему на смену протокола Blast Extreme в следующей тестовой конфигурации:
Автор обращает внимание на то, что PCoIP работает по UDP, поэтому похож на гоночную машину (лучше всего себя ведет на широкой полосе канала без помех и высокой нагрузки), а Blast Extreme, работающий по TCP - это джип, который хорошо едет по пересеченной местности (то есть, адаптируется к параметрам канала).
Тестирование проводилось по следующей схеме:
Пользователь логинится и ждет 1 минуту, чтобы сессия настроилась и была готова к тестированию.
Открыли локальный PDF-файл, скроллили его вверх и вниз 1 минуту.
Зашли на новостной сайт с графикой http://www.vg.no и поскроллили его.
Открыли Word и печатали там лабуду в течение 1 минуту.
Открыли трейлер фильма Captain America Civil War в полный экран браузера Chrome на полную длительность (2 минуты).
Для сбора данных и настройки окружения использовались следующие средства:
Splunk – Uberagent (сбор данных).
Netbalancer (bandwidth, возможность установки параметра packet loss, определение лимитов по bandwidth limits и задание latency).
Первый тест (5 MS latency, no packet loss) для Blast Extreme
Параметры использования канала: 248 MB total, Maximum usage 1,6 MBPS
Использование CPU: (Splunk, UberAgent) VMBlastW.exe (около 8.2%):
Среднее использование памяти:
Максимальное использование памяти:
Первый тест (5 MS latency, no packet loss) для PCoIP
Тут надо отметить, что PCoIP буферизует и собирает пакеты по 1198 байт перед отправкой:
Параметры использования канала: 184 MB, Maximum usage 999 KBPS
Использование CPU: (Splunk, UberAgent, около 24.2%):
Среднее использование памяти:
Максимальное использование памяти:
Автор делает вывод, что PCoIP дает намного большую нагрузку на клиентское устройство, чем Blast Extreme, который, в свою очередь, дает лучший User Experience, но потребляет большую ширину канала. Это может быть связано с дополнительными накладными расходами на квитанции TCP, а также тем, что Blast Extreme тестирует канал при начале передачи и пытается выжать из него максимум.
Работа Blast Extreme на latency 200 миллисекунд
Использование канала 43 MB, Maximum bandwidth 201 KBPS:
Здесь latency оказывает весьма негативный эффект на Blast за счет протокола TCP. Также на картинке выше видно, что неэффективно маленькие пакеты используются даже когда буфер пуст или пости пуст.
При просмотре ролика на Youtube Blast все же максимизирует размер пакета:
Максимальное использование памяти:
Работа PCoIP на latency 200 миллисекунд
Использование канала 118 MB, Maximum bandwidth 689 KBPS:
Нагрузка на CPU (обратите внимание, что меньше, чем без latency):
Использование памяти:
Вывод: Blast умеет использовать широкий канал и дает лучший user experience + создает меньшую нагрузку на клиентское устройство.