BES Client Setting: CPU Usage - idle settings allocation adjustment for multi-core physical machines
0 Votes |
Description
The BES Client is designed to use only a small fraction of the computer's CPU (< 1-2%) on average, but the calculation used to achieve this performance ideal is based on a system with a single physical CPU core.
Note: The BigFix client will do work (evaluate relevance) for a designated amount of time then go to sleep for a designated amount of time. The WorkIdle setting controls how many milliseconds to work before going to sleep in each cycle and the SleepIdle setting controls how many milliseconds to sleep after performing work in cycle. The above settings referenced are not adjusted for systems with multiple CPU cores. The Bigfix settings affect the clients use of one CPU Core. Machines with many CPU cores can actually minimize the clients actual operating CPU well below 2%.
Consider the following equations to determine actual Max CPU usage:
On a single core CPU:
Max agent %CPU = workidle / (workidle + sleepidle)
Example (default settings): 10 / (10 + 480) = 2% of CPU
On a multi-core CPU (CPU with 4 cores)
Max agent %CPU = workidle / ((workidle + sleepidle) * (# of cores))
Example (default settings): 10 / ((10 + 480) * (4)) = 0.5% of CPU
This Fixlet will adjust the workidle and sleepidle settings on multi-core machines to about 2% of CPU accross all available cores. This fixlet action will set the sleepidle value to its default value (480) and set the workidle value to 10 * (number of cores). If the system has greater than 10 cores, the work idle setting will be limited to 100 (this is to prevent over allocation of 1 core). The client work/sleep settings target a single core, this fixlet adjusts the workidle settings to compensate for this.
Property Details
26994 | |
Beta - Preliminary testing ready for more | |
BES Client Setting: CPU Usage - idle settings allocation adjustment for multi-core physical machines | |
BESC | |
BES Client Setting | |
0 | |
1/31/2023 12:00:00 AM | |
CPU Utilization for Multi-Core systems | |
obas on 2/3/2023 11:43:57 AM | |
obas on 2/3/2023 11:43:57 AM | |
258 Views / 1 Download | |
![]() ![]() ![]() ![]() ![]() |
Relevance
Used in 221 fixlets | * Results in a true/false |



Used in 1 fixlet | * Results in a true/false |

Used in 1 fixlet | * Results in a true/false |

Used in 1 fixlet | * Results in a true/false |

Used in 1 fixlet | * Results in a true/false |

Actions
Action 1 (default)
// If the number of cores are greater than 10, then set the value to 100, else calculate the value as ((# of cores) * 10)
parameter "worksetting" = "{if ((sum of cores of cpupackage as floating point) > 10) then "100" else (((sum of cores of cpupackage as floating point) * 10) as integer as string)}"
setting "_BESClient_Resource_WorkIdle"="{parameter "worksetting"}" on "{parameter "action issue date" of action}" for client
// Enter your action script here
setting "_BESClient_Resource_SleepIdle"="480" on "{parameter "action issue date" of action}" for client
// Drop breadcrumb for when the action was last run
setting "_BESClient_Resource_WorkIdle_MultiCore_Adjustment"="{now}" on "{parameter "action issue date" of action}" for client
This action will be considered successful when the applicability relevance evaluates to false.
Action 2
https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0023212
Sharing
Social Media: |