Bug 1805630 - [OVN SCALE][ovn-controller] Add incremental processing for Port_Binding, OVS interface ovsdb table changes in runtime data and flow output engine nodes
Summary: [OVN SCALE][ovn-controller] Add incremental processing for Port_Binding, OVS...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux Fast Datapath
Classification: Red Hat
Component: OVN
Version: RHEL 8.0
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: ---
Assignee: Numan Siddique
QA Contact: Jianlin Shi
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-02-21 08:43 UTC by Dumitru Ceara
Modified: 2020-08-18 11:24 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1855235 (view as bug list)
Environment:
Last Closed: 2020-08-18 11:23:51 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2020:3488 0 None None None 2020-08-18 11:24:15 UTC

Comment 7 Jianlin Shi 2020-07-20 04:11:46 UTC
calculate the time to generate openflow when add mass of logical switches with following script:

systemctl start openvswitch
systemctl start ovn-northd
ovn-nbctl set-connection ptcp:6641
ovn-sbctl set-connection ptcp:6642
ovs-vsctl set open . external_ids:system-id=hv1 external_ids:ovn-remote=tcp:20.0.31.25:6642 external_ids:ovn-encap-type=geneve external_ids:ovn-encap-ip=20.0.31.25
systemctl restart ovn-controller
                                                                                                      
                                                                                                      
date                                                                                                  
for i in {1..2000}                                                                                    
do                                                                                                    
        ovn-nbctl ls-add ls$i                                                                         
        ovn-nbctl lsp-add ls$i lsp${i}_1                                                              
        ovs-vsctl add-port br-int p${i}_1 -- set interface p${i}_1 type=internal                      
        ovs-vsctl set interface p${i}_1 external_ids:iface-id=lsp${i}_1                               
done                                                                                                  
                                                                                                      
date                                                                                                  
set -x                                                                                                
flow_num_before=0                                                                                     
while :                                                                                               
do                                                                                                    
    flow_num=$(ovs-ofctl dump-flows br-int | wc -l)                                                   
    [ $flow_num -eq $flow_num_before ] && break                                                       
    flow_num_before=$flow_num                                                                         
    sleep 1                                                                                           
done                                                                                                  
date

on ovn2.13.0-39:

Sun Jul 19 23:33:57 EDT 2020                                                                          
Sun Jul 19 23:45:00 EDT 2020                                                                          
+ flow_num_before=0                                                                                   
+ :                                                                                                   
++ ovs-ofctl dump-flows br-int                                                                        
++ wc -l                                                                                              
+ flow_num=133685                                                                                     
+ '[' 133685 -eq 0 ']'                                                                                
+ flow_num_before=133685                                                                              
+ sleep 1                                                                                             
+ :                                                                                                   
++ ovs-ofctl dump-flows br-int                                                                        
++ wc -l                                                                                              
+ flow_num=133890                                                                                     
+ '[' 133890 -eq 133685 ']'                                                                           
+ flow_num_before=133890                                                                              
+ sleep 1                                                                                             
+ :                                                                                                   
++ ovs-ofctl dump-flows br-int                                                                        
++ wc -l                                                                                              
+ flow_num=134211                                                                                     
+ '[' 134211 -eq 133890 ']'                                                                           
+ flow_num_before=134211                                                                              
+ sleep 1                                                                                             
+ :                                                                                                   
++ ovs-ofctl dump-flows br-int                                                                        
++ wc -l                                                                                              
+ flow_num=134211                                                                                     
+ '[' 134211 -eq 134211 ']'                                                                           
+ break                                                                                               
+ date                                                                                                
Sun Jul 19 23:45:07 EDT 2020  

<=== it takes about 2 seconds to generate full openflow after create all switches
                                                                        
[root@dell-per740-12 bz1805640]# rpm -qa | grep -E "openvswitch|ovn"                                  
openvswitch-selinux-extra-policy-1.0-23.el8fdp.noarch                                                 
ovn2.13-host-2.13.0-39.el8fdp.x86_64                                                                  
openvswitch2.13-2.13.0-48.el8fdp.x86_64                                                               
ovn2.13-central-2.13.0-39.el8fdp.x86_64                                                               
ovn2.13-2.13.0-39.el8fdp.x86_64 

on ovn2.13-20.06.1-4:

Sun Jul 19 23:46:58 EDT 2020                                                                          
Sun Jul 19 23:58:36 EDT 2020                                                                          
+ flow_num_before=0                                                                                   
+ :                                                                                                   
++ ovs-ofctl dump-flows br-int                                                                        
++ wc -l                                                                                              
+ flow_num=134082                                                                                     
+ '[' 134082 -eq 0 ']'                                                                                
+ flow_num_before=134082                                                                              
+ sleep 1                                                                                             
+ :                                                                                                   
++ ovs-ofctl dump-flows br-int                                                                        
++ wc -l                                                                                              
+ flow_num=134211                                                                                     
+ '[' 134211 -eq 134082 ']'                                                                           
+ flow_num_before=134211                                                                              
+ sleep 1                                                                                             
+ :                                                                                                   
++ ovs-ofctl dump-flows br-int                                                                        
++ wc -l                                                                                              
+ flow_num=134211                                                                                     
+ '[' 134211 -eq 134211 ']'                                                                           
+ break                                                                                               
+ date                                                                                                
Sun Jul 19 23:58:41 EDT 2020 

<=== it takes about 1 seconds to generate full openflow after create all switches
                                                                         
[root@dell-per740-12 bz1805640]# rpm -qa | grep -E "openvswitch|ovn"                                  
openvswitch-selinux-extra-policy-1.0-23.el8fdp.noarch                                                 
openvswitch2.13-2.13.0-48.el8fdp.x86_64                                                               
ovn2.13-20.06.1-4.el8fdp.x86_64                                                                       
ovn2.13-host-20.06.1-4.el8fdp.x86_64                                                                  
ovn2.13-central-20.06.1-4.el8fdp.x86_64

Dumitru , does the result show the improvement?

Comment 8 Dumitru Ceara 2020-07-28 08:09:56 UTC
(In reply to Jianlin Shi from comment #7)
> 
> <=== it takes about 2 seconds to generate full openflow after create all
> switches
>                                                                         

<SNIP>

> 
> <=== it takes about 1 seconds to generate full openflow after create all
> switches
>                                                                          

<SNIP>

> 
> Dumitru , does the result show the improvement?

Looks good to me, thanks!

Comment 9 Jianlin Shi 2020-07-29 02:14:22 UTC
set VERIFIED per comment 8

Comment 11 errata-xmlrpc 2020-08-18 11:23:51 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (ovn2.13 bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2020:3488


Note You need to log in before you can comment on or make changes to this bug.