CPU Usage During Action Execution

I understand that workidle and sleepidle control the CPU usage of the client when evaluating relevance, but is there any way to throttle CPU when a action starts on a client? In other words is it possible to start actions with a low priority.

Yes, the same set of settings but with the name “Normal” in them so _BESClient_Resource_SleepNormal and _BESClient_Resource_WorkNormal

Their defaults are 50 and 50

I looked for a built in task to set that setting but didn’t find one. Do you know if there is one? Would you recommend making this change for all of our clients?

I had no clue about those client settings. Those are missing from the configuration page.


@mbartosh Good question.

If you set the client setting on one computer, you can generate the tasks to set them on the others with this:

http://bigfix.me/fixlet/details/6114

You can just edit the settings of specific endpoints if you need them. Some customers do drop them to the same level as the background level (10 for Work, 480 for Idle) to not elevate but be aware that actions take longer to process when you drop the CPU to 2% from 50% of a core which is the default.

Why do you have the need to drop the CPU during action execution? I wouldn’t recommend dropping it all the way to 2%, but perhaps you could drop it a bit.

@AlanM does dropping the CPU in this way actually affect spawned processes from wait/run in the actionscript? Or does this just effect client relevance evaluation/substitution and similar things?

We have never throttled the tasks we spawn. Those run as they would on their own. The throttling only affects the client itself so it can’t process actionscript or status changes as quickly.

1 Like

There is the option of doing the following:

action launch preference low-priority

This should cause spawned processes to have lower CPU priority, but it will not throttle the max CPU of the spawned processes.

It would be interesting if there was a client setting to cause the client to spawn all processes as low-priority, particularly when users are logged on. I think this would help @mbartosh with the issue he is having.

See an example here: http://bigfix.me/fixlet/details/3967

The issue is I can’t edit the actionscript of all IBM provided fixlets & tasks to add this low priority option easily.

We used to use that even for the CPU scheduling of the agent a LONG time ago. It isn’t very well implemented in the Windows scheduler so not sure it can really help. In addition it could make some processes actually behave poorly so buyer beware there. Anything timing sensitive could be interrupted by another task for example.

1 Like

I agree that there are some possible issues, but I think that is less of a concern on multi-core systems where there is almost always excess CPU to be had, it is just that you don’t want the BigFix related tasks to be taking up 100% of a core and user’s processes be hindered because then you get complaints and helpdesk calls.

Alan, I thought you said that the settings _BESClient_Resource_SleepNormal and _BESClient_Resource_WorkNormal would throttle jobs spawned by Bigfix, and the settings _BESClient_Resource_SleepIdle and _BESClient_Resource_WorkIdle were for setting CPU priority for relevance evaluation. The worknormal and sleepnormal are not listed as one of the client settings in the documentation here which makes it difficult to see how they compare to SleepIdle and WorkIdle.
https://www.ibm.com/developerworks/community/wikis/home?lang=en#/wiki/Tivoli%20Endpoint%20Manager/page/Configuration%20Settings

The Sleep/WorkNormal settings are used when the client is processing actions. The client (and only the client) is throttled to these settings when an action is processing.

When actions finish the Sleep/WorkIdle settings are restored for the client throttling.

Any Sleep/Work setting the client is using is the only one its using at that time. The pairs are always together so if its a Normal pair or an Idle pair, the set is in place throttling the client’s CPU usage

1 Like

Hello Alan,
The below document shows that the task to set the two parameters is available,
_BESClient_Resource_WorkNormal
_BESClient_Resource_SleepNormal

https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Tivoli%20Endpoint%20Manager/page/Configuration%20Settings

But actually, it is not available, could you please check if there is bug in the document?
If so, could you please help to fix the document?

There is no task, but part way down the link you provided it tells you how to set these settings on an endpoint.

Hello Alan,
Thanks for your update. As the other parameter, if there is no task, they will mark the parameter as “Task Available: No”.
For the BESClientResource_WorkNormal and BESClientResource_SleepNormal, can we also change the Task Available to No.