[ovs-dev] bad performance delete tc flower rule in revalidator threads
wenxu at ucloud.cn
Mon Sep 30 07:34:09 UTC 2019
I test upstrem openvswitch with upstream net-next branch. It support rtnl-independent rule add and delete.
I did three test.
1. add rule only
There is good performance for add rules concurrent in the handler threads.
2. delete rule only
There is bad performance for del rules. But I test the delete rules concurrent using tc is quite good.
I think the problem maybe that the delete actions work in the revalidator thread which make the performance bad?
If there are 3k rules delete at the same time there will be the following log
timeval(revalidator62)|WARN|Unreasonably long 1189ms poll interval (6ms user, 34ms system)
2019-09-30T07:23:57.741Z|00052|timeval(revalidator62)|WARN|faults: 1 minor, 0 major
2019-09-30T07:23:57.741Z|00053|timeval(revalidator62)|WARN|context switches: 1110 voluntary, 1 involuntary
3. add and delete rules concurrently
There is also bad performance for this case. First the revalidator will block long time, and later the handler will also
block long time. It means the revalidator block also make the handler block?
But I test this case through tc rule get good performance.
For the second and last case, I add a ofproto_max_unkeep_op parameter to limit the delete/modify operation make thing go well. I also set the max-revalidator to 10000.
More information about the dev