This relates to opCharts version 3
As of opCharts version 3.2.6 Node list performance has been improved significantly and will be noticeable on systems with higher node counts, particularly on the node list page and on and scheduled outage page.
There are two basic modes that can be run: db off and db on. db off has cache running in memory. db on uses the db for caching. When db is set to on, the nodesum files are cached into the db and filters are run against the db instead of doing the filters manually in memory. NMISx db caching is now the faster option. By default this config item is turned off, to enable this edit your opCommon.nmis file located at /usr/local/omk/conf/opCommon.nmis and set nmisx_db_cache_enable to 1. For systems with a low number of nodes, using the db may not show any performance improvement
There are two more configuration items that control how the cache works:
This setting tells the app how long to wait before checking to see if the cache needs refreshing. In order to know if the cache needs refreshing we check the time the nodesum files are written and compare that against the time the cache was built. This is a simple optimisation. Since we access the cache quite often it gets a little expensive to check it several times a second, this prevents those checks for at least X seconds. The idea is that NMIS only writes the nodesum files at most once a minute so don’t bother looking more than that often.
This setting controls how long the data will stay in the cache before it’s removed. This is only for db mode, in memory mode this will have no affect.
Node list Sorting Health
If you have configured your node list to show the 8h health metric and using DB caching by default you cannot sort by this metric. This is because the node list is an aggeration of node configuration, node summary and node summary 8h.
To enable sorting of 8h health please edit opCommon.nmis and change:
Master Poller Caveat
When using DB caching on a master server 8h and 16h summary data for pollers is not cached, example is showing the 8h health value in the nodes list. If this data is important we recommend disabling db caching for this environment.
In environments with high node counts subnet generation can be expensive to process. To make sure the application remains fast we introduced a cache for this data and by default it has a 5min expiry.
The subnet generation takes part in the web request while viewing a subnet map. In instances with large node counts this can slow down a request each time the cache needs to be regenerated, you can adjust the cache time to
To perform subnet caching in the background you can use a cron job to call the opCharts CLI and perform a subnet cache manually, the interevile to run this is a balance between not caching stale data and time it takes to generate subnets with performance considerations included, we would reccomend to run the cron job every hour. If you have implemented this method you should change nmisx_subnet_cache_time to 86400 so it will not be performed in a web request.
Multiple web users
If you have multiple users of the platform you can increase the worker count, default is 10