What do the Memory Limit, Cores, CPU Priority, Cpu usage limit and Inline Mode settings in QoS do?
Short answer
Memory Limit is the upper limit of the memory the vService can use (default 2 GB). Cores determines the processor cores on which the vService will run, automatically or manually; CPU Priority, which appears when Manual is selected, determines the processor priority under contention, and Cpu Usage Limit (%) determines the percentage of the selected cores that can be used. Inline Mode automatically creates the firewall rules that redirect the traffic going to the Backend Service to the vService, in setups where TR7 stands in the traffic path. The QOS group also contains the Route Table and Core Engine fields. Changes to Memory limit, Cores, CPU priority, Cpu usage limit and Core engine restart the vService.
How Does It Work?
Each vService runs on the device with its own allocated resources. QOS determines the limit and priority of these resources: the memory limit determines the maximum memory the vService can use, the core selection determines which processor cores it will run on, and the priority and usage limit determine how processor time will be shared.
| Field | Options | Default | What it does |
|---|---|---|---|
| Inline Mode | On / off | Off | While TR7 is in the traffic path, creates the rules that redirect the traffic going to the Backend Service to the vService; if there is no Bridge interface with an assigned IP address in the route table of the Backend Service, no rule is created |
| Route Table | Defined route tables | System default | The route table the vService will use; visible if there is more than one table |
| Memory Limit | 1, 2, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64, 128, 256 GB | 2 GB | The memory upper limit of the vService; the cache size is also determined according to this limit |
| Cores | Automatic / Manual + core list | Automatic | In Manual, the vService runs on the selected cores; at least one core must be selected |
| CPU Priority | Low · Normal · High | Normal | The priority of the processor share when there is contention for the cores (High gets twice the share of Normal; Low gets half); visible in Manual |
| Cpu Usage Limit (%) | 1–100 | Empty (no limit) | The percentage of the total capacity of the selected cores that can be used (e.g. 50% on 2 cores = as much as 1 core); visible in Manual |
| Core Engine | Installed engine versions | System default | The engine version on which the vService runs; if the selected version does not support a feature, the "The selected core engine does not support" warning is given |
QOS Fields in TR7
- Where: The fields open when the QOS box is checked in the Details panel at Load Balancer → Load Balancer vService List → vService → Edit; they exist in HTTP and L7 TCP vServices. For step-by-step configuration: What is QoS; how do I reserve dedicated CPU/memory resources for critical vServices?
- While QOS is off: The vService runs with a 2 GB memory limit, automatic core assignment and Normal priority.
- Effect of the change: Changes to Memory limit, Cores, CPU priority, Cpu usage limit and Core engine restart the vService, and open connections are dropped (When does a change I make take effect; does it go live as soon as I save it?). In a cluster, it is also sent to the peer device with the default auto-sync; if Manual Sync Mode is on, it is sent with Synchronize.
- Monitoring: The values are seen in the Resources section on the Load Balancer Management tab of the vService; the usage is seen on the System tab of the vService dashboard.
- WEB-CLI: The fields are written in the
lb service updatecommand with the names--qos,--inlineMode,--logNamespace,--memoryLimit,--poolCores.N,--cpuPriorityand--cpuLimit(resource management).
Common Misconceptions
- "Inline mode speeds up traffic." Inline mode is a network placement setting; it is not a performance setting.
- "CPU priority always speeds things up." It makes a difference only when there is contention for the cores.
- "Cpu usage limit is a percentage of the total processor of the device." The limit is calculated according to the total of the cores selected for the vService.
- "Memory limit affects only connections." The cache size is also determined according to this limit; when the limit shrinks, the cache also shrinks.
- "Core engine is only version information." Some features (e.g. Least Response Time, HTTP/3) depend on the engine version.
How it is done in the documentation
