This is a pretty extreme situation. OVS isn't optimized for it. You might need to adjust the code in ofproto-dpif-upcall.c by hand to tune for it. If you come up with some changes that improve performance and are unlikely to substantially negatively affect performance in more common situations, then we'd be grateful to have the patches.
On Thu, Jun 27, 2019 at 10:38:20AM +0800, txfh2...@aliyun.com wrote: > Dear Ben: > sorry for my mistake, yes the fdb entry max limit is 1000k. > I have found in my test, when the test pkt flow num beyond 200k, > throughput > declines as the kernel flow limit is 200k.the revalidator threads will delete > kernel flow entry to remain flow size below 200k, am i right? > But even if i have set the flow-limit to 500k, i have found the kernel > flow num would also declines to around 200k after a few minutes. i donot know > the reason. i have read the "revalidatorwhat" slide(2014 ovs conf) but still > cannot get the clue. > Thanks for your reply. > > TIMO > > ---Original--- > From: "Ben Pfaff"<b...@ovn.org> > Date: Wed, Jun 26, 2019 23:11 PM > To: "txfh2007"<txfh2...@aliyun.com>; > Cc: "ovs-discuss"<ovs-discuss@openvswitch.org>; > Subject: Re: [ovs-discuss] [HELP]Question about fdb entry size > > On Wed, Jun 26, 2019 at 09:18:12PM +0800, txfh2007 via discuss wrote: > > I have a question about ovs fdb entry size && > aging time. I have found the > > > max fdb entry size is hard coded in mac_learning.c, that max_entries is > 100k, > > the longest aging time is 3600s. > > > > But in my test environment on which pkt forwarding is based on OVS normal > > action, and my test center could generate about 200k flow simultaneously. > > So > > the performance is effected by max entry size(there shoud be fdb entries > > evicted by new pkts), So can we enlarge the max_entries limitation, and what > > is the side effect? > > It looks to me like the maximum is 1 million: > > /* Sets the maximum number of entries in 'ml' to 'max_entries', adjusting it > * to be within a reasonable range. */ > void > mac_learning_set_max_entries(struct mac_learning *ml, size_t max_entries) > { > ml->max_entries = (max_entries < 10 ? 10 > : max_entries > 1000 * 1000 ? 1000 * 1000 > : max_entries); > } _______________________________________________ discuss mailing list disc...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-discuss