Resource Manager¶
The Resource Manager controls how Industrial Edge applications access selected system resources. It provides a structured way to expose hardware devices, external interfaces, and special runtime resources to containers while avoiding conflicts between applications.
Typical use cases include isolating CPUs for time-critical workloads, assigning dedicated network interfaces, or exposing device-specific resources such as GPUs, GPIO chips, or shared memory.
How the Resource Manager works¶
The Resource Manager groups resources into resource classes. Each class can provide one or more resource instances that applications can request during deployment or runtime. The Resource Manager then tracks these assignments and makes sure resources are used according to the configured rules.
The exact behavior depends on the enabled plug-ins and on the device configuration. For example, one plug-in can isolate CPUs for a single application, while another can provide controlled access to network interfaces or hardware peripherals.
Components at a glance¶
The Resource Manager consists of mandatory core services and optional plug-ins for individual resource classes.
| Component | Purpose |
|---|---|
| Resource Manager core | Discovers resources, tracks claims, and coordinates allocation |
| CPU resource plug-in | Reserves CPUs for specific workloads |
| Network resource plug-in | Manages isolatable network interfaces |
| Docker network plug-in | Applies network claims from Compose manifests |
| Nvidia GPU resource plug-in | Exposes supported Nvidia GPUs to applications |
| Shared memory resource plug-in | Provides managed shared-memory resources |
| GPIO resource plug-in | Exposes GPIO chip resources |
The core services are required for every Resource Manager deployment. Install optional plug-ins only for the resource classes that your device should support.
What to configure¶
When you prepare a device image, consider the following areas:
- Resource-specific behavior such as CPU isolation, network isolation, GPU access, or GPIO chip access
- Capability exposure so applications can request only the resource classes you want to support
- Runtime enablement of the Resource Manager services and plug-ins
- Persistence behavior so allocated resources can be restored correctly after restarts
Topics in this section¶
Use the following topics depending on the resource type or task you want to configure:
- Resource Manager Prerequisites summarizes the required platform, Docker, and package prerequisites.
- CPU Isolation explains how to reserve CPUs for specific applications.
- Network Interface Isolation explains how to dedicate network interfaces to applications.
- Real-time Applications describes the system preparation required for real-time workloads.
- GPU Allocation explains how to expose GPUs through the Resource Manager.
- Shared Memory Allocation explains how to provide shared memory resources.
- GPIO Chip Allocation explains how to expose GPIO chip resources.
- Configuring Capabilities describes how to declare Resource Manager capabilities for applications.
- Configuring the Resource Manager explains how to enable, disable, and inspect the Resource Manager and its resource classes.
- Resource Manager State Persistence explains how resource allocations are stored and recovered.
Recommended reading order¶
If you are setting up the Resource Manager for a new device, start with these topics:
- Resource Manager Prerequisites
- Configuring Capabilities
- Configuring the Resource Manager
- The resource-specific topic that matches your use case, for example CPU Isolation or Network Interface Isolation
- Resource Manager State Persistence
If your device must support deterministic workloads, also read Real-time Applications.