#networking #amazon-ec2 #emr
#сеть #amazon-ec2 #emr
Вопрос:
Я выполняю задание Spark на EMR. В настоящее время работа является узким местом сети (считывание данных из S3). Глядя на показатели в Ganglia, я получаю прямую линию со скоростью около 600 Мбит / с. Я использую экземпляр большого типа i2.8x, который, как предполагается, выдает 10 Гбит / с, то есть ~ 1280 Мбит / с. Я убедился, что расширенная сеть включена, а тип VirtualizationType — hvm, я что-то упускаю? Есть ли какой-либо другой способ увеличить пропускную способность сети?
Комментарии:
1. » Вопросы по профессиональному администрированию серверной или сетевой инфраструктуры, связанные с Stack Overflow, не относятся к теме, если они непосредственно не связаны с программированием или программными инструментами. Возможно, вы сможете получить помощь по ошибке сервера . »
Ответ №1:
Пропускная способностьсети инстансов Amazon EC2 зависит от типа инстанса. Чем больше экземпляр, тем больше доступных сетевых мощностей. Вы используете самый большой тип экземпляра в семействе i2, так что это хорошо.
Улучшенная сеть снижает задержку в сети и дрожание и доступна для ограниченного числа типов инстансов. Вы используете его, так что это хорошо.
i2.8xl указан как имеющий 10Gbps
пропускную способность сети, но она ограничена трафиком в пределах одной и той же группы размещения. Мое тестирование показывает, что экземпляры EMR не запускаются в пределах группы размещения, поэтому они могут не получать всю возможную пропускную способность сети.
Вы могли бы поэкспериментировать, используя больше экземпляров меньшего размера, а не меньше больших экземпляров. Например, 2 x i2.4xlarge
стоят столько же, сколько 1 x i2.8xlarge
.
Комментарии:
1. Спасибо, Джон. Вы знаете, есть ли какой-либо способ запустить EMR cluster в группе размещения? Кроме того, я пытался использовать ускорение передачи s3, чтобы посмотреть, помогает ли это, но, похоже, даже это не поддерживается EMR.
2. Я не смог найти опцию для определения группы размещения для EMR. Официально группы размещения просто размещают экземпляры в том же AZ (как и EMR), но они могут предложить больше преимуществ в серверной части. Ускорение передачи на Amazon S3 применимо только для загрузки файлов на Amazon S3 из местоположения, удаленного от корзины назначения. Это не применяется в регионе.
3. У меня такая же проблема с EMR.. Я использую r3.8x (с улучшенной сетью 10g), но я вижу несколько плоских вершин в своей сети, что заставляет меня думать, что я на скорости 1 Гбит / с.
4. вот полезная таблица для сравнения пропускной способности сети инстансов: ec2instances.info
Ответ №2:
Пропускная способность S3-> EC2 фактически ограничена скоростью 5 Гбит / с (625 Мбит / с) на самых больших типах экземпляров каждого семейства EC2, даже на экземплярах с улучшенной сетью и сетевым интерфейсом 20 Гбит /с. Это было подтверждено командой S3, и это соответствует тому, что я наблюдал в своих экспериментах. Для небольших экземпляров скорость ограничивается при более низких скоростях.
Время работы S3 до первого байта составляет около 80-100 мс, и после первого байта он теоретически способен доставлять данные в один поток со скоростью 85 Мбит / с. Однако мы наблюдали в среднем только около 60 Мбит / с на поток (IIRC). S3 подтвердила, что это ожидаемо и немного выше, чем отмечают их клиенты. Мы использовали HTTP-клиент, который поддерживал активные соединения с конечной точкой S3. Основная причина, по которой небольшие объекты обеспечивают низкую пропускную способность, заключается в большом времени до первого байта.
Ниже приведена максимальная пропускная способность, которую мы наблюдали (в МБ / с) при загрузке с S3 с использованием различных экземпляров EC2:
Instance MB/s
C3.2XL 114
C3.4XL 245
C3.8XL 600
C4.L 67
C4.XL 101
C4.2XL 266
C4.4XL 580
C4.8XL 600
I2.8XL 600
M3.XL 117
M3.2XL 117
M4.XL 95
M4.10XL 585
X1.32XL 612
Мы провели вышеупомянутый тест с объектами размером 32 МБ и количеством потоков от 10 до 16.
Также,
Производительность сети, указанная в матрице экземпляров ec2, сравнивается, как описано здесь. Это пропускная способность сети между экземплярами Amazon EC2 Linux в одном и том же VPC. То, что мы наблюдаем между экземплярами s3 и ec2, не соответствует тому, что они обещали.
Производительность сети экземпляра EC2, по-видимому, классифицируется как:
- Низкий
- Умеренный
- Высокая
- 10 Гигабит
- 20 Гигабит
Определение пропускной способности сети для экземпляра, обозначенного как низкий, умеренный или высокий, по-видимому, выполняется в каждом конкретном случае.
Экземпляры C3, C4, R3, I2, M4 и D2 используют интерфейс виртуальных функций Intel® 82599g и обеспечивают расширенную сеть с 10 гигабитными интерфейсами при самом большом размере экземпляра.
Интерфейсы 10 и 20 гигабит способны достигать такой скорости только при обмене данными внутри общей группы размещения, обычно при поддержке HPC. Сетевой трафик за пределами группы размещения имеет максимальный предел 5 Гбит /с.
Резюме: Упомянутая пропускная способность сети относится к двум экземплярам, а не к s3 и ec2. Даже между двумя экземплярами, когда они находятся в одной группе размещения имеют поддержку HPC, мы можем достичь чего-то около 10/20 Гигабита.