To calculate how full the SNMP polling threads are:

  1. Reset the SNMP polling statistics through dmctl:

    invoke SNMP_AccessorInterface::DEVSTAT-SNMP-Poller reset_statistics

  2. After waiting for a while, preferably a multiple of the network polling interval, retrieve the SNMP-Poller statistics through dmctl:

    get SNMP_AccessorInterface::DEVSTAT-SNMP-Poller

  3. Calculate the total polling time as follows:

    totalPollingTime = avg_active_processing_time
                     * total_active_poll_actions
    
  4. Calculate the polling thread utilization as follows:

    PollingThreadUtilization = totalPollingTime 
                  / (num_threads * statistics_time)
    

    Evaluating SNMP statistics indicates the acceptable and unacceptable values for these statistics during normal polling (that is, not during discovery). Late polling may be higher during discovery. If PollingThreadUtilization is high, (which likely causes late polling) then determine if the high utilization is due to inadequate polling threads or CPU processing time.

    Calculate the device time as follows:

    PollingDeviceTimePercentage = avg_get_time * total_periodic_gets/(num_threads*statistics_time)
    

    If the PollingDeviceTimePercentage accounts for most of the PollingThreadUtilization, the problem can be rectified by adding polling threads. Otherwise, address the CPU processing time by using a faster machine, lesser topology, or a larger polling interval.

Table 1. Evaluating SNMP statistics

SNMP Performance category

Acceptable

How to improve

PollingThreadUtilization

< 60%

Increase number of polling threads.

avg_late_polling

< 10 seconds