This page gives an overview of how job concurrency works within Net LineDancer.


Overview

NetLD is designed to be highly scalable and whenever jobs are run against devices the netLD server will attempt to take advantage of the available CPUs on by running jobs in parallel.
 
This concurrency is calculated automatically based on the specs of the server using a combination of the number of CPU cores and available memory.

Algorithm

The netLD server will automatically configure the job concurrency based on the following table. The Concurrency is the number of simultaneous tasks that can be run.

A single job in netLD will contain one task per each device in the job. So if there are two jobs running simultaneously and each job has 5 devices, then there will be 10 tasks.

NetLD will never run two tasks against the same device at once. So if a task is already running for a given device, the job will move on to another task first until the other job's task has completely.


CPU CoresFree Memory* Concurrency 
1,2>3072m12

>1280m7
3,4,5>7168m24

>3072m16

>1280m12
>5
>7168m
32

>3072m
16

>1280m
12


If none of these conditions is met the concurrency is set to 5.


*Memory - This is the actually free memory at the time of calculation, not necessarily the same as the maximum memory.


Daily Automatic Reconfiguration

The automatic concurrency settings are reconfigured daily.


10 minutes after the service first starts the netLD server will execute the above algorithm and save the newly calculated concurrency settings. Afterward, netLD will recalculate and save the new values each 24 hours.


So, if extra memory is added to the server, netLD will automatically detect this and the concurrency settings will be updated.