Reference:
System Environment:
- Server: Dual XeonE5-2670 v2 2.5GHz; 64GB DDR3; 512GB SSD
- 1Gbps NIC
- JAVA_OPTS="${JAVA_OPTS:--Xms8G -Xmx8G}"
- (no flow rules backup)
"Constant-Load" Test Conditions:
- F = 122500 - total # of flows installed
- N: # of neighboring ONOS's for flows to be installed from a server installing flows
- S: #servers installing flows
- SW = 35 - total # of switches (Null Devices) connected to ONOS cluster evenly distributed to active ONOS nodes
- FL: # flows to be installed on each switch
Command: python3 $ONOS_ROOT/tools/tests/bin/flow-tester.py -f FL -n N -s servers
Iterations on each test:20 (after 4 warm-up runs)
RC2 - Commit#: 6b30e1b5d89d829f673d20bec3ee4e2b072c02bc
Jenkins Run: #14 &15
Result:
Mean | 1 | 3 | 5 | 7 |
---|
N = 0 | 508 | 1209 | 1647 | 1977 |
---|
N = "all" | 508 | 1332 | 1537 | 2246 |
---|
. |
Result Discussions:
- When N = 0, all flow installation from all nodes are local, i.e. flows are for local switches. This are the cases when no EW communication is needed for flow operations;
- When N is "all", the neighbor setting N +1 is equal to the cluster size of the test. For instance, when testing with 3-node cluster, N=2. This are the cases when "maximum" of EW communication is needed for each node generating flows.
- As the result shows, flow installation throughput performance increases with cluster size.
Appendix:
Throughput Plots against various of flow pattern scenarios:
Mean | 0 | 2 | 4 | 6 |
---|
S=1 | 508 | 843 | 684 | 760 |
---|
S=3 | 1209 | 1332 | 1863 | 1816 |
---|
S=5 | 1647 | 1471 | 1537 | 1942 |
---|
S=7 | 1977 | 2025 | 1901 | 2246 |
---|
|
Mean | 1 | 3 | 5
| 7 |
---|
N=0 | 508 | 1209 | 1647 | 1977 |
---|
N=2 | 843 | 1332 | 1471 | 2025 |
---|
N=4 | 684 | 1863 | 1537 | 1901 |
---|
N=6 | 760 | 1816 | 1942 | 2246 |
---|
|
Stdev | 0 | 2 | 4 | 6 |
---|
S=1 | 43 | 146 | 199 | 131 |
---|
S=3 | 544 | 664 | 365 | 364 |
---|
S=5 | 760 | 910 | 1028 | 897 |
---|
S=7 | 1064 | 793 | 1200 | 1140 |
---|
|