You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Scaling NMIS polling is something many large enterprise and service provider customers want to be able to do, and one of the biggest issues with polling devices, is when devices themselves start responding too slowly, either from network latency or because they are overloaded.

NMIS has added features to ensure that polling keeps up to date and the polling server is not getting overloaded.

NMIS Poll Cycle Overview

NMIS has two main functions, a collect and an update.  An update is really a node discovery, it determines what a node can do and how it should be managed.  The collect is the poll cycle when the main SNMP and other protocol polling activity happens.

Depending on your configuration, the thresholding and summary processes will run with the main collect or can be run seperately, details about that in the article Scaling NMIS Polling.

Related Features in NMIS

To prevent individual nodes from holding up NMIS, a system to manage long running processes was added.  These were summarised in the release notes as:

NMIS now handles critical sections and long-running NMIS processes much better than before:

  • New config option max_child_runtime can be used to limit collect/update job runtime.
  • If NMIS jobs runs over-time, a warning event is generated unless config option disable_nmis_process_events is set to false.
  • Collect jobs can now optionally run longer than a single collect cycle, if the command line option ignore_running=true is given - in which case NMIS will just warn about old NMIS processes that are still running, not kill them as it does by default.

max_child_runtime configuration option

By default this is set to undef and the feature is disabled if the value is undef or 0 (zero).

When enabled this feature will set a process alarm on the threads (child processes) which will terminate the child if it is running for too long.

NMIS Event "NMIS runtime exceeded"

By default, NMIS 8.5.4 and greater will monitor all the processes on the NMIS server and when starting a new collect cycle (polling cycle), NMIS will check if there are still processes running from the last poll cycle.  If it finds any "old" processes it will politely ask them to stop (kill "TERM"), the child processes will receive this request and complete what they are doing fairly quickly and die peacefully.  The event "NMIS runtime exceeded" will be generated for the node and added to the NMIS Event Log.

If you do not want to use this feature you can add ignore_running=true to your command line in the cron setup, e.g. "nmis.pl type=collect ignore_running=true etc"

If you like the feature but do not what the events to be generated, you can disable the events with the configuration option disable_nmis_process_events=false, this is found in the Config.nmis or can be modified using the NMIS Configuration in the "System -> System Configuration" menu.

 

  • No labels