Networking 增加EC2上的网络IO

Networking 增加EC2上的网络IO,networking,amazon-ec2,emr,Networking,Amazon Ec2,Emr,我在EMR上执行一个Spark任务。这项工作目前受到网络(从S3读取数据)的限制。看看Ganglia中的指标,我得到了一条大约600 MBPs的直线。我使用的是i2.8x大型实例类型,它假定会提供10Gbps,即约1280MBPs。我已经验证了增强型网络已打开,虚拟化类型为hvm,我是否遗漏了什么?有没有其他方法可以提高网络吞吐量 亚马逊EC2实例的网络容量取决于实例类型。实例越大,可用的网络容量就越多。您使用的是i2系列中最大的实例类型,这很好 降低网络延迟和抖动,并可用于有限数量的实例类型。

我在EMR上执行一个Spark任务。这项工作目前受到网络(从S3读取数据)的限制。看看Ganglia中的指标,我得到了一条大约600 MBPs的直线。我使用的是i2.8x大型实例类型,它假定会提供10Gbps,即约1280MBPs。我已经验证了增强型网络已打开,虚拟化类型为hvm,我是否遗漏了什么?有没有其他方法可以提高网络吞吐量

亚马逊EC2实例的网络容量取决于实例类型。实例越大,可用的网络容量就越多。您使用的是i2系列中最大的实例类型,这很好

降低网络延迟和抖动,并可用于有限数量的实例类型。你在用,所以这很好

i2.8xl被列为具有
10Gbps
的网络吞吐量,但这仅限于同一网络中的流量。我的测试表明,EMR实例不是在放置组中启动的,因此它们可能无法获得可能的全部网络吞吐量


您可以通过使用更多的小实例而不是更少的大实例来进行实验。例如,亚马逊EC2实例的2 x
i2.4xlarge
成本与1 x
i2.8xlarge

网络容量取决于实例类型。实例越大,可用的网络容量就越多。您使用的是i2系列中最大的实例类型,这很好

降低网络延迟和抖动,并可用于有限数量的实例类型。你正在使用它,所以这很好

i2.8xl被列为具有
10Gbps
的网络吞吐量,但这仅限于同一网络中的流量。我的测试表明,EMR实例不是在放置组中启动的,因此它们可能无法获得可能的全部网络吞吐量


您可以通过使用更多的小实例而不是更少的大实例来进行实验。例如,2 x
i2.4xlarge
的成本与1 x
i2.8xlarge

在每个EC2系列的最大实例类型上,S3->EC2带宽实际上限制在5Gbps(625MB/s)的速率,即使在具有增强网络和20Gbps网络接口的实例上也是如此。S3团队已经证实了这一点,它与我在实验中观察到的结果相符。较小的实例以较低的速率获得速率限制

S3到达第一个字节的时间约为80-100ms,在第一个字节之后,理论上它能够以85MB/s的速度向单个线程发送数据。然而,我们只观察到平均每个线程大约60MB/s(IIRC)。S3确认这是预期的,并且略高于客户观察到的结果。我们使用了一个HTTP客户机,它使到S3端点的连接保持活动状态。小对象产生低吞吐量的主要原因是到达第一个字节的时间很长

以下是我们在使用各种EC2实例从S3下载时观察到的最大带宽(MB/s):

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
我们已经用32MB对象和10-16之间的线程数完成了上述测试

而且

ec2上引用的网络性能按照所述进行基准测试。这是同一VPC中Amazon EC2 Linux实例之间的网络带宽。我们在s3和ec2实例之间观察到的情况并不是他们所承诺的

似乎被分类为:

  • 中庸的
  • 万兆
  • 20千兆
在指定为低、中或高的实例上确定网络带宽似乎是根据具体情况进行的

C3、C4、R3、I2、M4和D2实例使用Intel®82599g虚拟函数接口,并提供最大实例大小的万兆接口

10千兆和20千兆接口只有在同一个放置组(通常支持HPC)内通信时才能达到该速度。放置组之外的网络流量的最大限制为5 Gbps


小结:提到的网络带宽是在两个实例之间,而不是在s3和ec2之间。即使在两个实例之间,当它们位于同一个放置组+有HPC支持时,我们也可以实现大约10/20千兆位的带宽。

s3->ec2带宽实际上在每个ec2系列的最大实例类型上限制在5Gbps(625MB/s)的速率,即使在具有增强网络和20Gbps网络接口的实例上。S3团队已经证实了这一点,它与我在实验中观察到的结果相符。较小的实例以较低的速率获得速率限制

S3到达第一个字节的时间约为80-100ms,在第一个字节之后,理论上它能够以85MB/s的速度向单个线程发送数据。然而,我们只观察到平均每个线程大约60MB/s(IIRC)。S3确认这是预期的,并且略高于客户观察到的结果。我们使用了一个HTTP客户机,它使到S3端点的连接保持活动状态。小对象产生低吞吐量的主要原因是到达第一个字节的时间很长

以下是我们在使用各种EC2实例从S3下载时观察到的最大带宽(MB/s):

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
我们已经用32MB对象和10-16之间的线程数完成了上述测试

而且

ec2上引用的网络性能按照所述进行基准测试。这是同一VPC中Amazon EC2 Linux实例之间的网络带宽。我们在s3和ec2实例之间观察到的情况并不是他们所承诺的

似乎被分类为:

  • 中庸的
  • 万兆
  • 20千兆
在指定为低、中或高的实例上确定网络带宽似乎是根据具体情况进行的

C3、C4、R3、I2、M4和D2实例使用Intel®82599g虚拟函数接口,并提供最大实例大小的万兆接口<