100 | | - If you have more time or are interested in trying out things, go ahead. The tutorial is over now and feel free to ask questions :-) |
| 100 | - If you have more time or are interested in trying out things, go ahead and try section 2.7. The tutorial is over now and feel free to ask questions :-) |
| 101 | |
| 102 | == 2.7 Try more experiments using different kinds of OpenFlow Load Balancers == |
| 103 | - You can find more load balancers from http://www.gpolab.bbn.com/experiment-support/OpenFlowExampleExperiment/ExoGENI/load-balancer/ |
| 104 | - To try out any one of them, follow the steps: |
| 105 | - At the home directory on node "Switch", download the load balancer you want to try out, e.g., |
| 106 | {{{ |
| 107 | wget http://www.gpolab.bbn.com/experiment-support/OpenFlowExampleExperiment/ExoGENI/load-balancer/load-balancer-random.rb /root/ |
| 108 | }}} |
| 109 | - rename this load balancer to "load-balancer.rb" by: |
| 110 | {{{ |
| 111 | cp load-balancer-random.rb load-balancer.rb |
| 112 | }}} |
| 113 | - On !LabWiki, drag and drop the "File" icon and re-do the experiment as described in section 2.3 |
| 114 | - Some explanations about the different load balancers: |
| 115 | - "load-balancer-random.rb" is the load balancer that picks path randomly: each path has 50% of the chance to get picked |
| 116 | - "load-balancer-roundrobin.rb" is the load balancer that picks path in a round robin fashion: right path is picked first, then left path, etc. |
| 117 | - Load balancers that begin with "load-balancer-bytes" picks path based on the total number of bytes sent out to each path: the one with fewer bytes sent out is picked |
| 118 | - "load-balancer-bytes-thread.rb" sends out flow stats request in function "packet_in" upon the arrival of a new TCP flow and waits until flow stats reply is received in function "stats_reply" before a decision is made. As a result, this balancer gets '''the most up-to-date flow stats''' to make a decision. However, it needs to wait for at least the round-trip time from the controller to the switch (for the flow stats reply) before a decision can be made. |
| 119 | - "load-balancer-bytes-auto-thread.rb" sends out flow stats request once every 5 seconds in a separate thread, and make path decisions based on the most recently received flow stats reply. As a result, this balancer makes path decisions based on some old statistics (up to 5 seconds) but reacts fast upon the arrival of a new TCP flow (i.e., no need to wait for flow stats reply) |
| 120 | - Load balancers that begin with "load-balancer-flows" picks path based on the total number of flows sent out to each path: the one with fewer flows sent out is picked |
| 121 | - Load balancers that begin with "load-balancer-throughput" picks path based on the total throughput sent out to each path: the one with '''more throughput''' is picked |