One of our more technical employees has raised an issue regarding the BESClient constantly using CPU. To be clear, this is not an issue with the amount of CPU being used, just that it never uses 0% CPU.
These are the direct quotes from the requestor:
The new BigFix service “BES Client” (C:\Program Files (x86)\BigFix Enterprise\BES Client\BESClient.exe) is constantly using cpu. Not a lot, but it never sleeps. Task manager show 1-3% cpu usage for this service 24/7, which is not how any well behaved program should operate.
Sorry, but this is not how any well written windows (or any other) application is written. I can write an app to continually scan the entire hard drive and not constantly use cpu like that. It is constantly spinning the cpu because the code is garbage. This is not something that should be accepted in enterprise grade software as “oh well”
This was my unsatisfactory response:
This is expected behavior for the BigFix Client. The BigFix Client is always active in the background, processing and evaluating objects like fixlets, tasks, analyses, and inventory, and relaying results to the server. The BigFix Client will never exceed 5% CPU with our current configuration.
Here are my questions:
-
Is an application that constantly uses CPU poorly written?
-
Can someone provide links to HCL/BigFix KB articles that can explain away this issue?
-
Can I use configuration settings to alleviate the issue?
I have reviewed these forum articles:
I have applied the following settings to two systems and have not seen a change in CPU usage behavior for BESClient:
I have also tried setting _BESClient_Resource_AccelerateForPendingMessage = 0.
_BESClient_Resource_AccelerateForPendingMessage 1 Local
_BESClient_Resource_PowerSaveEnable 1 Local
_BESClient_Resource_PowerSaveTimeout0 10 Local
_BESClient_Resource_PowerSaveTimeout1 15 Local
_BESClient_Resource_PowerSaveTimeout2 30 Local
_BESClient_Resource_SleepIdle 460 Local
_BESClient_Resource_StartupNormalSpeed 0 Local
_BESClient_Resource_WorkIdle 25 Local
We also have these settings configured and I’m not sure if they are interfering:
I inherited these settings, so please let me know if they are incorrect.
_BESClient_Comm_CommandPollEnable 1 Local
_BESClient_Comm_CommandPollIntervalSeconds 900 Local
_BESClient_Download_FastHashVerify 1 Local
_BESClient_Download_RetryMinutes 1 Local
_BESClient_Download_CheckAvailabilitySeconds 120 Local
_BESClient_Query_NMOMaxQueryTime 30 Local
_BESClient_Query_SleepTime 500 Local
_BESClient_Query_WorkTime 250 Local
Any feedback on this would be greatly appreciated. Thank you!
_mxg