In a setup with multiple processing devices, such as servers and GPUs, the system automatically determines which device and KiwiVision™ Analyzer role each video analytics scenario is assigned to. However, you can override the system's assignment of scenarios by manually reassigning them, or you can exclude KiwiVision Analyzer roles and scenarios from automatic load balancing altogether.
Automatic load balancing
By default, the system automatically balances the load for optimum performance of the KiwiVision Security video analytics and KiwiVision People Counter modules. The distribution is based on multiple factors, such as the frame rate of the analytics and the CPU or GPU usage of each server.
How automatic load balancing works
- Scenario distribution
- When a scenario ends up not being assigned to a KiwiVision Analyzer role or device, for example, when a scenario is created or manually unassigned, the system immediately assigns the scenario to a device that is currently processing few scenarios.
- Automatic load balancing
- In the background, the system repeatedly moves individual scenarios to different
KiwiVision Analyzer roles and devices (CPU and
GPU), then observes how the performance changes, and repeats this process until it
determines the optimal option for reassignment. This process occurs once every 30
minutes at most, and can take up to a few minutes to complete.
During the reassignment process, the scenario runs on both the source and target role or device for a short time. There is no downtime and no duplication of events because they are suppressed on the new scenario until handover is complete, but additional computing resources are used.
The system only attempts moving scenarios when there is enough memory available on the target server or device:- For all analytics, the target server must have at least 1.0 GB of main memory available.
- For the first intrusion or object detection analytics scenario on that KiwiVision Analyzer role, the target server must have at least 1.5 GB of main memory available.
- For people counting analytics, the target GPU must have at least 0.5 GB of dedicated GPU memory available.
- For the first people counting analytics scenario on that KiwiVision Analyzer role, the target server must have at least 5.0 GB of main memory available.
- For the first people counting analytics scenario on that KiwiVision Analyzer role, the target GPU must have at least 3.5 GB of dedicated GPU memory available.
Manual load balancing
You can manually reassign video analytics scenarios to KiwiVision Analyzer roles or exclude specific KiwiVision Analyzer roles and scenarios to override the system's automatic load balancing. Manual load balancing is useful when you have servers on different sites and you do not want the camera data to be transferred between the sites, or when resources are sparse.
How exclusions work
- When a scenario is excluded, it can no longer be automatically reassigned to different
KiwiVision Analyzer roles or devices. The
following cases are exceptions:
- When the scenario's KiwiVision Analyzer role is deleted, automatic load balancing is re-enabled for the scenario and it is reassigned.
- When the scenario is assigned to the GPU of an KiwiVision Analyzer role, if that role goes online without GPU, the scenario falls back to CPU.
- When a KiwiVision Analyzer role is excluded, all its currently assigned video analytics scenarios are excluded, and no other scenarios can be assigned to the role automatically.
- Video is not processed in the following cases:
- When the scenario's KiwiVision Analyzer role is deactivated or the servers are offline, the scenario remains locked, and no longer processes any video.
- When all KiwiVision Analyzer roles are excluded, and scenarios are created, the new scenarios remain unassigned and do not start processing video until assigned manually.