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#
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#
https://aws.amazon.com/ec2/instance-types/m5/
m5.8xlarge can reach 10Gbps
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#
- iperf (BENCHMARK NETWORK THROUGHPUT)
 
Test#
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#
[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#
[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#
w/i the placement group#
| Flow | Bandwidth/Flow | Bandwidth | 
|---|---|---|
| 1 | 10Gbps | 10Gbps | 
| 2 | 5Gbps | 10Gbps | 
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#
| Flow | Bandwidth/Flow | Bandwidth | 
|---|---|---|
| 1 | 5Gbps | 5Gbps | 
| 2 | 5Gbps | 10Gbps | 
we need two flows to use up all m5.8xlarge’s bandwidth (5Gbps, 5Gbps)
so it reaches the limit of AWS…

