On Controller Performance in Software-Defined Networks Author: Amin Tootoonchian, Sergey Gorbunov, Yashar Ganjali, Martin Casado and Rob Sherwood Publisher: Presenter: Yu Hao, Tseng Date: 2013/05/29 Outline • • • • • • Introduction NOX-MT Experiment Setup Controller Throughput Controller Response Time Cbench Introduction • How fast can the controller respond to data path requests? • How many data path requests can it handle per second? • For example : • NOX handles around 30k flow initiation events per second while maintaining a sub-10ms flow install time [14]. • Kandula et al. [9] found that a 1500-server cluster has a median flow arrival rate of 100k flows per second. • Benson et al. [2] show that a network with 100 switches can have spikes of 10M flows arrivals per second in the worst case. • We present NOX-MT a publicly-available multithreaded successor of NOX. 3 NOX-MT • NOX is not optimized for performance and is single-threaded. • The techniques to optimize NOX are including : • I/O batching to minimize the overhead of I/O • Port the I/O handling harness to Boost Asynchronous I/O (ASIO) library • Use a fast multiprocessor-aware malloc implementation • NOX-MT is far from perfect. • Heavy use of dynamic memory allocation and redundant memory copies on a per-request basis • Using locking were robust wait-free alternatives exist Experiment Setup • Cbench emulates a configurable number of OpenFlow switches that all communicate with a single OpenFlow controller. • Each emulated switch sends a configurable number of new flow messages to the OpenFlow controller, waits for the appropriate flow setup responses, and records the difference in time between request and response. • Cbench supports two modes of operation : • Latency • Throughput Controller Throughput • Maximum throughput Controller Throughput (Cont.) • Relation with the number of active switches Controller Throughput (Cont.) • Relation with the load level Controller Throughput (Cont.) • Effect of write-intensive workload Controller Response Time • Minimum response time • Average response times of all controllers are between 100 and 150 microseconds. • Maximum response time Controller Response Time (Cont.) • Relation with the load level Controller Response Time (Cont.) • Relation with the number of active switches Cbench Cbench (Cont.) Cbench (Cont.) • http://www.openflow.org/wk/index.php/Controller_Performa nce_Comparisons Cbench (Cont.) responses/s min max avg stdev NOX 42620.00 232301.74 203830.60 57337.18 POX 7764.75 7939.25 7875.25 54.54