Today, the most common tool for measuring controller performance is cbench. We've made some changes to Floodlight to enhance cbench performance and want to suggest a configuration for running performance tests of this type.
Get a fast jvm
Openjdk is easy to install but its worth getting a fast sun jvm to maximize performance. Check out [www.java.com]. There are no longer Ubuntu packages I believe.
Update the floodlight properties file
Edit src/main/resources/floodlightdefault.properties to look like this. It loads a minimal, optimized configuration of Floodlight.
floodlight.modules = net.floodlightcontroller.learningswitch.LearningSwitch,net.floodlightcontroller.counter.NullCounterStore,net.floodlightcontroller.perfmon.NullPktInProcessingTime
Build Floodlight
The Floodlight properties file is cached in the Floodlight jar. You can either rebuild Floodlight or add a "-cf floodlightdefault.properties" to the java command in floodlight.sh (in the root floodlight directory).
$ ant;
Run Floodlight
You should use floodlight.sh in the root directory to run Floodlight. This includes a number of java properties that optimize performance.
Caveats
Depending on the number of MAC's in your test, you may need to tweak memory properties further.