ViPR SRM 4.1: High CPU utilization on Brocade DCX8510 switch due to ViPR SRM SNMP polling

           

   Article Number:     517575                                   Article Version: 4     Article Type:    Break Fix 
   

 


Product:

 

ViPR SRM,ViPR SRM 4.1,ViPR SRM 4.0,ViPR SRM 4.0.3,ViPR SRM 4.0.2,ViPR SRM 4.0.1,Watch4net,Watch4net 6.6,Watch4net 6.5

 

Issue:

 

 

   

         
  •         Every polling ViPR SRM polling cycle, high CPU utilization issues are observed on DCX8510-8 Brocade switches running FOS 7.4.1e that are discovered via SNMP Device Discovery.      
  •      
  •         The switch in question has a very large number of ports.     
  •      
  •         Applying KB article 499268, which involves enabling only one capability "BROCADE_FCSWITCH_SYSTEM", helps to alleviate the CPU utilization on the switch.     
  •      
  •         Setting the "Varbinds per SNMP getBulk" polling option to 50 and the timeout value to 30000 did not resolve the issue.      
  •      
  •         Increased the polling interval to 30 minutes causes the CPU utilization to peak at 100% every 30 minutes.      
  •    
                                                             

 

 

Cause:

 

 

The ViPR SRM SNMP collector can initiate large numbers of parallel connections when polling devices, which can lead to performance problems if there is a large amount of data to be captured.                                                            

 

 

Resolution:

 

 

ViPR SRM initiates large numbers of parallel connections to the switches every polling cycle - reducing the number of threads utilized will reduce the amount of activity on the switch CPU.   
   
    To reduce the number of threads in use on the SNMP collector:   

         
  1.         Locate the configuration file "slave-snmp-poller.xml" which is located under /opt/APG/Collecting/SNMP-Collector/Generic-SNMP/conf/      
  2.      
  3.         Take a backup of the original file before editing the file.     
  4.      
  5.         Edit the file and find the thread configuration:     
  6.    
   
      <?xml version="1.0" encoding="UTF-8"?><slave-snmp-poller name="srm01cl01.srm.local" pollerPrefix="srm01cl01.srm.local" groupName="group" oidsThreads="500" tablesThreads="500" alwaysPushProperties="true" handleCounterWrapAround="true" usePollerPrefixInVariable="false" oidAsPropertyInRawValues="false" configVersion="6.6" xmlns:xi="http://www.abc.org/2001/XInclude">       
        <local-communication-settings hostIpAddress="localhost" communicationPort="2008" communicationInterfaceIPAddress="0.0.0.0" maxConcurrentSessions="498">       
        <out-interface-ip-addresses>       
        <out-interface-ip-address>0.0.0.0</out-interface-ip-address>       
        </out-interface-ip-addresses>       
        <accept-commands-from-list/>       
        </local-communication-settings>       
        <xi:include href="polling-groups.xml"/>       
        </slave-snmp-poller>
     
          
   
      The default values for the thread configuration is as below:   
   
         
  •         maxConcurrentSessions="498"     
  •      
  •         oidsThreads="500"      
  •      
  •         tablesThreads="500"     
  •    
   
      Change these to the values below:   
   
         
  •         maxConcurrentSessions="249"     
  •      
  •         oidsThreads="250"      
  •      
  •         tablesThreads="250"     
  •    
   
         
  1.         Save the file, and update and start the Generic-SNMP collector service on the collector:     
  2.    
   
      /opt/APG/bin/manage-modules.sh service update collector-manager Generic-SNMP       
        /opt/APG/bin/manage-modules.sh service start collector-manager Generic-SNMP