Skip to main content
Matrix42 Self-Service Help Center

Concurrency Settings Overview

Summary

In Silverback by Matrix42 version, it's possible to impose limits on the number of concurrent device connections. What this means is that once the concurrency limit is reached, any further devices attempting to connect will be told to disconnect. This allows you to control the load on the Silverback server while still allowing fast connectivity for your devices.

Concurrency Graph

By navigating to the Admin Tab > Pending Commands section, you can view a graph which displays the execution time for commands from devices. What this graph does is take the top commands, sorted by execution time (the slowest commands) and creates an average. The averages are displayed on the graph over time:

Average Execution Time Graph

In the example above, we are sampling the top 25 slowest commands (this number is configurable in the System Settings page, mentioned below), and displaying the average time. As we can see, the average time at 12:30 PM was just above 1 second.
Using this graph, you can get an idea of how long commands are taking to execute, and then choose to limit device concurrency if the requests are too slow.
Beneath this graph is a setting for Current cut off limit. This is the maximum number of devices that can connect simultaneously. If your commands are executing slowly (indicated by the graph), then it might be worth considering reducing the cut off limit, which will make those devices connecting execute commands faster and reduce load on the system. 

System Settings

By logging into the Admin Console as a user with the Settings Administrator role, you can configure the settings that control device concurrency. After logging in, navigate to the MDM Payload section, and the the new section, MDM Concurrency Settings will be available. 
In this section you can configure the following settings:

Setting Description
Minimum Number of Devices in the system before concurrency limit is enabled. This is the number of devices enrolled before concurrency is enabled. If you don't want to use concurrency settings at all, set this number to be greater than the amount of devices in your system. This setting also determines if the execution time graph in the Pending Commands page is visible or not. 
Period in minutes between limit flush to db. When setting the concurrency limit from the Pending Commands page, this setting needs to be saved to device periodically. This setting governs how often this happens. It's recommended to leave this setting as default.
Minutes before device count cache is cleared.

The number of devices in the system is cached. This means that potentially the above limit could be exceeded before the concurrency settings are enabled. This setting defines how long until the number of devices in the system is refreshed.

Seconds before statistics SQL query will timeout.

The graph in the admin page may timeout if the request is large or the system is under load. This setting determines how long the SQL query will execute before timing out.

Interval for getting statistics data in minutes. How often the system should get updated statistics data.
Limit of rows for statistics requests.

How much data should be sampled for the statistics. The system will query the executed commands, sort by how long the commands took (descending) and then take this number of items for it’s statistics.

Percentage of request limit before statistics check.

The system will recalculate how many devices should be checking in, this is the percentage of the current limit that the system should wait for, before checking statistics.

  • Was this article helpful?