On Mon, Apr 16, 2012 at 05:18:40PM -0700, Ben Pfaff wrote:
> This series improves ovs-vswitchd performance for short flows about
> 3X, from about 40,000 flows/s to about 120,000.  Tomorrow I will
> post more detailed performance analysis.

As promised, here's commit-by-commit performance numbers for the
command
ovs-benchmark -T600 rate -r 192.168.0.2:32768-50000 -l :32768-50000 -s 300
run between a couple of desktop boxes.

44f3c11 ofproto-dpif: Keep subfacet "used" times more up-to-date.
600.939 s elapsed, 0 OK, 11494154 failed, avg 19127.0/s

5824975 ofproto-dpif: Drop unneeded _SAFE from iteration in handle_flow_miss().
600.940 s elapsed, 0 OK, 11437802 failed, avg 19033.2/s

09b207e ofproto-dpif: Batch flow uninstallations due to expiration.
600.434 s elapsed, 0 OK, 13029774 failed, avg 21700.6/s

dbc879d dpif: Include TCP flags in "ovs-dpctl dump-flows" output.
600.636 s elapsed, 0 OK, 12978329 failed, avg 21607.6/s

ba09f94 netlink-socket: Avoid forcing a reply for final message in a 
transaction.
600.440 s elapsed, 0 OK, 13201988 failed, avg 21987.2/s

f132213 ofproto-dpif: Don't do any accounting at all when removing facets.
600.340 s elapsed, 0 OK, 13208514 failed, avg 22001.7/s

40c2d35 ofpbuf: New functions ofpbuf_use_stub() and ofpbuf_get_uninit_pointer().
600.738 s elapsed, 0 OK, 13209177 failed, avg 21988.2/s

ce84d92 ofproto-dpif: Avoid malloc() in common cases for xlate_actions().
600.383 s elapsed, 0 OK, 13712843 failed, avg 22840.2/s

e45c5f2 dpif-linux: Avoid malloc() in dpif_linux_operate().
600.249 s elapsed, 0 OK, 14220239 failed, avg 23690.6/s

df4dd45 ofproto-dpif: Avoid computing flow hash multiple times.
600.744 s elapsed, 0 OK, 14264351 failed, avg 23744.5/s

617edf7 netlink: Postpone choosing sequence numbers until send time.
600.409 s elapsed, 0 OK, 14329672 failed, avg 23866.5/s

2a91fe3 netlink-socket: Remove unnecessary #include.
600.383 s elapsed, 0 OK, 14363645 failed, avg 23924.1/s

6acc560 netlink-socket: Make caller provide message receive buffers.
600.643 s elapsed, 0 OK, 14666202 failed, avg 24417.5/s

0d61fe5 ofproto-dpif: Move definition of "struct subfacet" earlier.
600.737 s elapsed, 0 OK, 14663645 failed, avg 24409.4/s

cac4d87 ofproto-dpif: Avoid malloc() in common case for allocating subfacets.
600.583 s elapsed, 0 OK, 14587688 failed, avg 24289.2/s

de12216 dpif: Make caller of dpif_recv() provide buffer space.
600.044 s elapsed, 0 OK, 14723652 failed, avg 24537.6/s

92c8c32 ofproto-dpif: Avoid malloc() of "struct flow_miss".
600.342 s elapsed, 0 OK, 14871023 failed, avg 24770.9/s

9491812 hash: Speed up hash_bytes().
600.349 s elapsed, 0 OK, 14897118 failed, avg 24814.1/s

6517526 mac-learning: Speed up mac_table_hash().
600.283 s elapsed, 0 OK, 14981418 failed, avg 24957.3/s

721cf8c classifier: Optimize search of "catchall" table.
600.792 s elapsed, 0 OK, 15231515 failed, avg 25352.4/s

65b4bc4 ofproto-dpif: Make it easier to credit statistics for resubmits.
600.785 s elapsed, 0 OK, 15260282 failed, avg 25400.6/s

0154ed2 ofproto-dpif: Avoid malloc() in common case for "execute" operations.
600.135 s elapsed, 0 OK, 15241167 failed, avg 25396.2/s

6da047a ofproto-dpif: Implement "flow setup governor" to speed up many short 
flows.
600.628 s elapsed, 0 OK, 35791891 failed, avg 59590.8/s

00235a1 ofproto-dpif: Avoid calling get_ofp_port() twice in xlate_normal().
600.493 s elapsed, 0 OK, 35928661 failed, avg 59831.9/s

f2b518c ofproto-dpif: Avoid extra flow copy in xlate_actions() if no mirrors.
600.658 s elapsed, 0 OK, 36191789 failed, avg 60253.6/s

7a00728 ofproto-dpif: Avoid extra flow copy in xlate_actions() for unneeded 
warnings.
600.531 s elapsed, 0 OK, 36070596 failed, avg 60064.5/s
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to