BES Client Setting: CPU Usage - idle settings allocation adjustment for multi-core physical machines
Log In or Register to download the BES file, and more.

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

ID26994
StatusBeta - Preliminary testing ready for more
TitleBES Client Setting: CPU Usage - idle settings allocation adjustment for multi-core physical machines
DomainBESC
CategoryBES Client Setting
Download Size0
Source Release Date1/31/2023 12:00:00 AM
KeywordsCPU Utilization for Multi-Core systems
Added by on 2/3/2023 11:43:57 AM
Last Modified by on 2/3/2023 11:43:57 AM
Counters 258 Views / 1 Download
User Rating 1 star 2 star 3 star 4 star 5 star * Average over 0 ratings. ** Log In or Register to add your rating.

Relevance

Used in 221 fixlets   * Results in a true/false
Show indented relevance
(if exists property "in proxy agent context" then ( not in proxy agent context ) else true )
Used in 92 fixlets and 24 analyses   * Results in a true/false
Show indented relevance
version of client >= "5.1"
isWindows (Relevance 1172)
Used in 1156 fixlets and 539 analyses   * Results in a true/false
Show indented relevance
windows of operating system
Used in 1 fixlet   * Results in a true/false
Show indented relevance
((name of it starts with "Win") AND (platform id of it != 3) AND (version of it >= "6.1")) of operating system
Used in 1 fixlet   * Results in a true/false
Show indented relevance
if exists true whose (if true then( (((item 0 of it contains "VMware") or ((item 0 of it contains "Microsoft") and not (item 1 of it as lowercase contains "surface")) or (item 0 of it contains "Xen")) of ((value "manufacturer" of it as string, value "product_name" of it as string) of structure "system_information" of smbios))) else false) then False else True
Used in 1 fixlet   * Results in a true/false
Show indented relevance
(sum of cores of cpupackage as floating point) > 1
Used in 1 fixlet   * Results in a true/false
Show indented relevance
(NOT (exists setting "_BESClient_Resource_WorkIdle" whose (exist value whose (it as string = (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)) ) of it)of client)) OR (NOT(((if (not exists setting "_BESClient_Resource_SleepIdle" of client OR not exists value of setting "_BESClient_Resource_SleepIdle" of client) then 480 else (value of setting "_BESClient_Resource_SleepIdle" of client as integer)) as floating point as integer) = 480))

Actions

Action 1 (default)

Action Link Click here  to set the BES Client to use 2% CPU usage on Multi-Core Systems.
Script Type BigFix Action Script
// 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
Success Criteria

This action will be considered successful when the applicability relevance evaluates to false.

Action 2

Action Link Click here to deploy this action.
Script Type URL
https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0023212
    

Sharing

Social Media:
Share this page on Yammer

Comments

Log In or Register to leave comments!