0% found this document useful (0 votes)
72 views10 pages

Compass Tuning Parameters

This document provides guidance on tuning parameters for the Compass component in Niagara to optimize performance. It describes several key parameters for configuring the worker queue size, number of background threads, polling frequencies, and caching settings. The recommendations suggest starting with the default values and monitoring CPU usage, then adjusting values down if usage exceeds 80% until an optimal configuration is reached. Calculations are provided to scale the values based on license limits, number of devices, cores, and other system specifics.

Uploaded by

Yanal Kazan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
72 views10 pages

Compass Tuning Parameters

This document provides guidance on tuning parameters for the Compass component in Niagara to optimize performance. It describes several key parameters for configuring the worker queue size, number of background threads, polling frequencies, and caching settings. The recommendations suggest starting with the default values and monitoring CPU usage, then adjusting values down if usage exceeds 80% until an optimal configuration is reached. Calculations are provided to scale the values based on license limits, number of devices, cores, and other system specifics.

Uploaded by

Yanal Kazan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 10

Technical Support – Tech Note

[NBT_BACNET_CONFIG]
NBT_BACNETNETWORK_WORKER_QUEUE_MAXSIZE=100,000 <default value>
This sets the maximum size for the queue of tasks requested per concurrent background thread. Tasks requested include
resolving Net-Mac addresses, determining whether a point has a priority array, and other tasks.
The recommended maximum value setting is 200,000. The enforced limit is much greater than this recommended value;
however, settings higher than 200,000 will cause unacceptable waiting times for requested tasks to complete.
The default value represents an appropriate number for a Compass-1-Small license and has been derived by multiplying
the license device limit by a factor of 20. Increase value accordingly based on the maximum number of devices
supported by the license, e.g. Compass-1-MD value would be 3000 (150 devices x 20); Compass-1-XL value would be
20000 (1000 x 20).
Note: Data display throughput indirectly relies on the size of this queue.

How to Calculate Starting Value: Maximum License Count (devices) * 20

NBT_BACNETNETWORK_WORKER_NUMTHREADS=64 <default value>

This sets the maximum number of available concurrent background threads used by the WORKER_QUEUE above. The
recommended maximum value setting is 64. The enforced limit is much greater than this recommended value; however,
this recommended maximum value is a practical limit based on the specified minimum number of CPU cores and
installed memory.
The default value represents an appropriate number for the default setting of the WORKER_QUEUE. When making
adjustments to this value, you must monitor the Workstation CPU performance (CPU Usage in Windows Task Manager)
so as to avoid overloading the computer. If the CPU Usage remains at a value above 80% you should decrease the value
of the background threads. Using a multi-core CPU will allow for higher value settings. An eight-core processor will offer
the best performance.
Note: Data display throughput indirectly relies on the number of available concurrent background threads, specifically;
the throughput for initially polled values resolving from “waiting…” to display the actual values. Subsequent updates of
displayed values are dependent on NBT_BACNETNETWORK_IPLINK_POLLSERVICE_NUM_THREADS.

How to Calculate Starting Value: (CPU (Cores) * installed RAM (GB)) * .25

Rev 2
Compass Tuning Parameters

NBT_BACNETNETWORK_IPLINK_POLLSERVICE_NUMTHREADS=32 <default value>


This sets the maximum number of available concurrent background threads for point data polling used to update data
displays. The recommended maximum value is 32.The enforced limit is much greater than this recommended value;
however, this recommended maximum value is a practical limit based on the specified minimum number of CPU cores
and installed memory.
When making adjustments to this value, you must monitor the primary workstation’s CPU performance (CPU Usage in
Windows Task Manager) to avoid overloading the computer. If the CPU Usage remains at a value above 80%, then you
should decrease the value of background threads. Using a multi-core CPU allows for higher value settings. An eight-core
processor offers the best performance.
These three parameters relate to the performance of the BACnet driver used by the Compass-NBT component for
processing incoming requests. For example, Who_Is and I_Am.

How to Calculate Starting Value:

 Start by setting the value to the recommended maximum of 32.


 Monitor CPU Usage.
 If CPU utilization is greater than 80%, then reduce to 24.
 Continue to monitor CPU Usage.
 If CPU utilization is greater than 80%, then reduce to 16.

NBT_BACNETNETWORK_SERVER_WORKER_QUEUE_MAXSIZE=20,000 <default value>


The recommended maximum value is 20,000. The enforced limit is much greater than this recommended value;
however, this is the practical limit.

How to Calculate Starting Value:

If the number of connected devices is:


<1000 then the recommended value is 1000.
>1000 but <2000 then the recommended value is 4000.
>2000 but <3000 then the recommended value is 8000.
>3000 but <5000 then the recommended value is 12,000.
>5000 then the recommended value is 20,000.

2
Compass Tuning Parameters

NBT_BACNETNETWORK_SERVER_WORKER_NUMTHREADS=32 <default value>


NBT_BACNETNETWORK_ SERVER_CONFIRMEDWORKER_NUMTHREADS=32 <default value>

The recommended maximum value setting is 32.The enforced limit is much greater than this recommended value;
however, this recommended maximum value is a practical limit based on the specified minimum number of CPU cores
and installed memory.
When making adjustments to these values, you must monitor the primary workstation’s CPU performance (CPU Usage in
Windows Task Manager) to avoid overloading the computer. If the CPU Usage remains at a value above 80%, then you
should decrease the value of the background threads. Using a multi-core CPU allows for higher value settings. An eight-
core processor offers the best performance.
These two settings support the higher-layer background threads described above.

How to Calculate Starting Value:

 Start by setting the value to the recommended maximum of 32.


 Monitor CPU Usage.
 If CPU utilization is greater than 80%, then reduce to 24.
 Continue to monitor CPU Usage.
 If CPU utilization is greater than 80%, then reduce to 16.

NBT_BACNETNETWORK_TRANSPORT_CLIENT_QUEUE_MAXSIZE=10,000 <default value>


NBT_ BACNETNETWORK_TRANSPORT_SERVER_QUEUE_MAXSIZE=10,000 <default value>

The recommended maximum value setting is 10,000. The enforced limit is much greater than this recommended value;
however, this recommended maximum value is a practical limit based on CPU and other dependent settings.
The default values represent an appropriate number for a Compass-1-Small license and have been derived by
multiplying the license device limit by a factor of 2. Increase value accordingly based on the maximum number of
devices supported by the license. For example, Compass-1-MD value would be 300 (150 devices x 2) and Compass-1-XL
value would be 2000 (1000 x 2).
The number of read/write data points from multiple devices on a display impacts the performance of the Web user
interface. For example, the Compass- NBT component. The following parameters relate specifically to caching and
updating displays.

How to Calculate Starting Value: Maximum License Count (devices) * 2

NBT_BACNETNETWORK_MONITOR_PING_INTERVAL=3600
This setting defines how frequently the Niagara station will send who-is requests to a device that is still present. If the
device’s net/mac has been resolved, it does not send a who-is request, instead it does a read-property request for the
device’s system-status property. Value is in seconds (3600 = 1 hr) Impactful for engineering and commissioning a job.

3
Compass Tuning Parameters

NBT_BACNETNETWORK_DEVICE_POLL_FOR_DEVICE_FACETS_OPTION=False
Niagara points ask for other BACnet properties that we don’t use. False will cause it NOT to request those additional
properties. Beneficial for 3rd party devices for discoverability purposes when set to True.

4
Compass Tuning Parameters

[NBT_DISPLAY_CONFIG]

NBT_BACNETNETWORK_MSTP_DEFAULT_POLL_FREQUENCY=NORMAL <recommended default value>


Controls the polling interval for MSTP networks. Should be set to Normal, Fast or Slow. Setting to too fast or too slow
can negatively impact display performance. Default is Normal. Slow = 30 seconds, Normal = 5 seconds, Fast = 1 second

NBT_BACNETNETWORK_ETHERNET_DEFAULT_POLL_FREQUENCY=FAST <recommended default value>


Controls the polling interval for Ethernet networks. Should be set to Normal, Fast or Slow. Default is Fast. Slow = 30
seconds, Normal = 5 seconds, Fast = 1 second

NBT_DISPLAY_PX_CACHE_MAX_SIZE=100 <recommended starting value>


This variable sets the maximum number of displays and templates that will be cached for all users. The value is derived
using the equation: (T x N + D) x U.
Where:
T = Total Number of Device Templates (.dvtx files)
N = Total Number of devices expected to view using T
D = Total Number of Displays (.dspx files)
U = Total Number of Users
Example
A five-story building has 250 controllers, 10 systems and 240 terminal units. There are 15 unique data displays (.dspx)
and 10 unique device templates (.dvtx). There are three users with system access. Inserting values into the above
equation ((10 device templates x 250 devices) + 15 data displays) x 3 users, the value for PX_CACHE_MAX_SIZE would be
set at 7545. However, in practice, a value of 7545 may be too large. A more appropriate value can be calculated by using
only the primary user’s most commonly referenced templates and displays to view the critical devices.
Reworking the above calculation using ((4 device templates x 50 devices) + 5 displays) x 1 user, the value for
PX_CACHE_MAX_SIZE should be set at 205.

New recommendation to start at 100 and go up

How to Calculate Starting Value:

((T * N) + D) * U)

Where...

T = # of most commonly referenced templates


N = # of critical devices
D = # of most commonly referenced displays
U = primary # of users

5
Compass Tuning Parameters

6
Compass Tuning Parameters

NBT_DISPLAY_HTML_CACHE_MAX_SIZE=100 <recommended starting value>

This sets the maximum number of displays and templates that will be cached for all users. The same value is used for
both parameters.
Example
A five-story building has 250 controllers, 10 systems and 240 terminal units. There are 15 unique data displays (.dspx)
and 10 unique device templates (.dvtx). There are three users with system access. Inserting values into the above
equation (10 device templates + 15 data displays), the value for PX_CACHE_MAX_SIZE would be set at 25.

New recommendation to start at 100 and go up

How to Calculate Starting Value:

T + D

Where...

T = # of most commonly referenced templates


D = # of most commonly referenced displays

7
Compass Tuning Parameters

NBT_DISPLAY_NUM_UPDATE_ITEMS_PER_REQUEST=100 <use tuning calculator to determine starting value>


This sets the maximum number of items on the display to be updated per request sent to the system. The value is
derived by the total number of items on a typical display or template.
Example
A five-story building has 250 controllers, 10 systems and 240 terminal units. The Web user interface uses 15 unique data
displays (.dspx) and 10 unique device templates (.dvtx). A typical floor plan display has 48 zones with each zone depicted
using an OmniGraphic. Each zone OmniGraphic references 3 data points (space temp, heating setpoint, and cooling
setpoint). The value for NUM_UPDATE_ITEMS_PER_REQUEST would be set to 150 (48 zones x 3 items).
Increasing the value results in display data updating more slowly, decreasing the value results in data updating more
quickly. However, the data will update in pieces as opposed to all at once. Most users prefer data to update quickly and
will accept partial data, as opposed to waiting for all data to update together.

Note: Multiple factors influence the data update time when viewing displays and templates. These factors include the
number of unique devices being viewed at the same time, the number of data points on the displays being viewed
concurrently, and the current settings related to the work threads in the profile.ini file.

How to Calculate Starting Value:

Z*P

Where...

Z = # of Zones
P = # of data Points

8
Compass Tuning Parameters

Compass NBT Point Cache Tuning


Compass creates a cache that is unlimited in size for point values that is filled based on the initial request of points on a
display. This cache is used to populate point data on displays when initially opened. The settings below are used to tune
the behavior of the point cache.

NBT_POINTCACHE_MAX_NUM_PTS=1000 <use tuning calculator to determine starting value>


Maximum number of cached points to be polled periodically (min=0, max=1000, recommended start=1000)

Items to consider – number of displays that are opened most often and the number of points on these displays.

How to Calculate Starting Value:

IF (D * P) < 1000, (D * P), ELSE 1000

Where...

D = # of Displays
P = # of data Points

NBT_POINTCACHE_ITERATION_POLLING_NUM_PTS=50 <use tuning calculator to determine starting value>


Max number of cached points to be poll a sub-list of points to be polled in each polling interval (min=1, max=1000,
recommended start=50)

How to Calculate Starting Value:

NBT_POINTCACHE_MAX_NUM_PTS * .25

9
Compass Tuning Parameters

NBT_POINTCACHE_POLLING_INTERVAL_SECS=600 <use tuning calculator to determine starting value>


Point Cache polling interval in secs (min=5, max=1440, recommended start=300), 600 = 10 min

How to Calculate Starting Value:

Site specific preference. 10 minutes recommended starting point

NBT_POINTCACHE_ITERATION_POLLING_DELAY_MS=6000 <use tuning calculator to determine starting value>


Delay between checks/polling retries for each point in milliseconds (min=500, max=60000, default=1000)

How to Calculate Starting Value:

Site specific preference. 6 seconds (6,000 milliseconds) recommended starting point

NBT_POINTCACHE_ITERATION_POLLING_NUM_RETRIES=3 <use tuning calculator to determine starting value>


Max number of retries when polling each point in a polling interval (min=1, max=30, default=3)

How to Calculate Starting Value:

Site specific preference. 3 retries recommended starting point

10

You might also like