On Thu, Apr 25, 2013 at 12:28:46PM +0000, pengyi Peng(Yi) wrote: > I find the reason why ovs commits so many transactions. > > In bridge_run, ovs-vswitchd would refresh interface statistic if > necessary. If the number of ports is big enough such as 500, it will > take a long time to check every port's statistic. If statistic > changes, ovs- vswitchd will send messages to ovsdb which costs much > resource. And if every port's statistic keeps changing, the length and > the number of the message will be so big that ovs can't deal with it.
I see two issues here. First, it is surprising that checking the statistics for 500 interfaces and sending updates to ovsdb-server, only once every 5 seconds, manages to take a long time. We have tested OVS with thousands of interfaces and have not had this problem. Is there anything unusual about your setup, for example a slow CPU or port statistics that take a long time to query, that would make your case different? Second, it should not be too hard to change OVS so that, instead of trying to refresh interface stats into the database every 5 seconds, it waits for the previous stats transaction to finish committing, then waits 5 seconds, then starts the next stats transaction. That would keep stats from consuming an unbounded amount of space on the database connection, but it would not require disabling interfaces stats. Does this make sense to you? _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev