AWS Insight: Как работают Placement Groups

в 10:48, , рубрики: Amazon Web Services, AWS, cluster, Блог компании EPAM Systems Ukraine, Облачные вычисления, метки: ,

Привет! image

У многих есть проекты с «хайлоадом». Немногие используют кластеры на AWS. И те, кто всё-таки их используют, должны использовать Placement группы.

Что это такое

Placement Groups (Группы размещения) — логические объединения кластерных типов AWS инстансов, позволяющие уменьшить сетевые задержки. AWS гарантирует скорость в 10 Gb между серверами, запущенными в одной плейсмент группе. Чисто теоретически, эти инстансы запускаются географически рядом.

При обычном размещении инстансов получается приблизительно следующая картина:
AWS Insight: Как работают Placement Groups

При старте инстансов в плейсмент группе, инстансы физически близко, тем самым получается выиграть в сетевых задержках:
AWS Insight: Как работают Placement Groups

Как создать плейсмент группу и запустить в ней инстансы

Есть по 2 способа как создать плейсмент группу, так и запустить инстансы в ней. Заметим, что уже запущенные машинки уже невозможно поместить в плейсмент группу.

1. CLI Tools

Создадим плейсмент группу:

$ ec2-create-placement-group MyFirstCluster -strategy cluster

И запустим в ней 10 кластерных GPU инстансов:

$ ec2-run-instances ami-02f54a6b -n 10 --instance-type cg1.4xlarge --placement-group MyFirstCluster --group MyClusterSecurityGroup

2. AWS Console

Создаем плейсмент группу:
AWS Insight: Как работают Placement Groups

И добавляем в группу 10 новых инстансов, выбирая плейсмент группу при их создании:
AWS Insight: Как работают Placement Groups

Тесты производительности

Статья бы была «ни о чём», если бы в ней не было бы тестов производительности сети между кластерными инстансами вне и в плейсмент групп.

Тест

Тест производится между двумя кластерными инстансами Cluster Compute Quadruple Extra Large Instance (cc1.4xlarge). На одном установлен и стартован дефолтный NGINX. На другом — httpd с тулзой Apache Bench.

1000 раз запускается строка вида:

ab -c 60 -n 4000 http://$ADDR/

В результате, на сервер отправлено 1000*60*4000=240.000.000 запросов. Мы посчитаем среднее время ответа, на этом и будем строить наши догадки о том, как хорошо работают плейсмент группы.

Результаты

Конечно тяжело разобраться с правомочен ли тест, но что есть, то есть.

Вот график среднего времени ответа сервера (grep 'Time per request' |grep «across»):
AWS Insight: Как работают Placement Groups

Видно, что график с серверами в плейсмент группе чуточку быстрее, чем вне её.

Выводы

При использовании кластерных инстансов на EC2/VPC нужно и полезно использовать Placement Groups. Это немного уменьшает сетевые задержки, что при долговременном использовании может значительно повлиять на производительность кластера.

AWS рекомендует не использовать более 128 инстансов в одной плейсмент группе, посему лучше их разделять на несколько групп, если у вас много серверов.

Используете ли вы Placement Groups в своих проектах на AWS? Есть ли интересные данные по производительности?

Автор: korjik

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js