Skip to main content
Hugo’s IT journal Hugo's IT journal

EC2 Bandwidth test

·
aws ec2 bandwidth
Objective>

Objective #

  • Test if the ec2 can reach 10Gbps bandwidth in same placement group
  • Test if the 10Gbps is the limited by the ec2 instance type or aws
AWS Limit>

AWS Limit #

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-network-bandwidth.html

in single-flow traffic,

  • placement group: 10Gbps
  • w/o placement group: 5Gbps

flow = worker (thread) in the network driver. depends on the ec2 instance type.

EC2 Instance Type Limit>

EC2 Instance Type Limit #

https://aws.amazon.com/ec2/instance-types/m5/

m5.8xlarge can reach 10Gbps

Setup>

Setup #

Created 3 m5.8xlarge instances which can reach 10Gbps bandwidth each (i use spot)

  • 2 in same placement group
  • 1 in other subnet
Tool>

Tool #

Test>

Test #

Not in same placement group and parallel 1>

Not in same placement group and parallel 1 #

[root@ip-172-31-33-28 ~]# iperf -c 172.31.12.68 --parallel -i 2 -t 2
iperf: ignoring extra argument -- 2
------------------------------------------------------------
Client connecting to 172.31.12.68, TCP port 5001
TCP window size:  812 KByte (default)
------------------------------------------------------------
[  3] local 172.31.33.28 port 38880 connected with 172.31.12.68 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 2.0 sec  1.15 GBytes  4.93 Gbits/sec
[root@ip-172-31-33-28 ~]# iperf -c 172.31.12.68 --parallel -i 2 -t 2
iperf: ignoring extra argument -- 2
In same placement group and parallel 1>

In same placement group and parallel 1 #

[root@ip-172-31-7-236 ~]# iperf -c 172.31.12.68 --parallel -i 2 -t 2
iperf: ignoring extra argument -- 2
------------------------------------------------------------
Client connecting to 172.31.12.68, TCP port 5001
TCP window size: 1.90 MByte (default)
------------------------------------------------------------
[  3] local 172.31.7.236 port 50544 connected with 172.31.12.68 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 2.0 sec  2.22 GBytes  9.54 Gbits/sec
Not in same placement group and parallel 2>

Not in same placement group and parallel 2 #

[root@ip-172-31-7-236 ~]# iperf -c 172.31.12.68 --parallel 2 -i 1 -t 2
------------------------------------------------------------
Client connecting to 172.31.12.68, TCP port 5001
TCP window size: 2.00 MByte (default)
------------------------------------------------------------
[  4] local 172.31.7.236 port 50538 connected with 172.31.12.68 port 5001
[  3] local 172.31.7.236 port 50536 connected with 172.31.12.68 port 5001
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0- 1.0 sec   603 MBytes  5.06 Gbits/sec
[  3]  0.0- 1.0 sec   585 MBytes  4.91 Gbits/sec
[SUM]  0.0- 1.0 sec  1.16 GBytes  9.96 Gbits/sec
[  4]  1.0- 2.0 sec   604 MBytes  5.07 Gbits/sec
[  4]  0.0- 2.0 sec  1.18 GBytes  5.06 Gbits/sec
[  3]  1.0- 2.0 sec   579 MBytes  4.85 Gbits/sec
[SUM]  1.0- 2.0 sec  1.16 GBytes  9.92 Gbits/sec
[  3]  0.0- 2.0 sec  1.14 GBytes  4.88 Gbits/sec
[SUM]  0.0- 2.0 sec  2.32 GBytes  9.94 Gbits/sec
Outcome>

Outcome #

w/i the placement group>

w/i the placement group #

FlowBandwidth/FlowBandwidth
110Gbps10Gbps
25Gbps10Gbps

we can use up all m5.8xlarge’s bandwidth in a single-flow traffic.

But the traffic splits 50%,50% in double-flow traffic.

Therefore, 10Gbps is the max bandwidth of the m5.8xlarge.

outside the placement group>

outside the placement group #

FlowBandwidth/FlowBandwidth
15Gbps5Gbps
25Gbps10Gbps

we need two flows to use up all m5.8xlarge’s bandwidth (5Gbps, 5Gbps)

so it reaches the limit of AWS…