Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

Opmantek gets many questions on how to scale NMIS8 for very large networks. There are many factors impacting polling performance and the upper limits of polling is really only limited by the number of processor cores, available memory and disk IO performance.  We have customers managing 10's of 1000's of nodes using NMIS.

Table of Contents

Server Specifications

The following server specifications are guidelines for NMIS installations.

 

   Storage performance is one of the greatest factors for scaling polling, you should consider using highly performant storage like SSD.
The ideal way to determine specifications for your server is to baseline some nodes on the server and determine what resources are required.



SmallMediumLargeMassive
OS Storage20GB20GB20GB20GB
Data Storage40GB60GB140GB280GB
Memory
2GB
4GB
4-
8GB
8GB
16GB
16GB
32GB+
CPU2 x vCPU2 to 4 x vCPU
4 to 6
8 x vCPU
8
16+ vCPU
Device Count< 500 devices< 1500 devices< 2500 devices

A very large
number of devices

Element Count2000 elements8000 elements14000 elementsA very large number
of elements

Elements are additional data being collected, an interface is an element, a CBQoS class is an element.

An element requires additional SNMP polling to collect the values and then storage on the disk to save the data.

...

You can also control the way NMIS does its thing by moving the summary and thresholding to cron, I would suggest this as a good practice for larger installations.
In CRON: 


Code Block
*/2 * * * * /usr/local/nmis8/bin/nmis.pl type=summary
4-59/5 * * * * /usr/local/nmis8/bin/nmis.pl type=threshold
 


In Config.nmis:

Code Block
'threshold_poll_cycle' => 'false',
'nmis_summary_poll_cycle' => 'false',
'disable_interfaces_summary' => 'true',

...

To optimise how NMIS files are saved, you can use the JSON database, this will require NMIS 8.4.8g or greater.  The following needs to be run on every master Primary and slave poller server in an NMIS cluster and this should be co-ordinated to run very close together.


Code Block
/usr/local/nmis8/admin/convert_nmis_db.pl

This script will stop NMIS polling, convert the database files, update the NMIS configuration to use the new database format, then start the polling again.

...