Determine CPU utilization for 3 scheduler intervals

CyFlex now supports the LACC. LACC consists of 3 statistical variables, avail_cpuSLo, avail_cpuMed, and avail_cpuFas. The 3 variables reflect the available cpu, as a percentage, for the SLO, MED, and FAS intervals respectively.

For those that would like the rest of the story, LACC is determined by the CyFlex process ‘cpu_util’. The first thing that cpu_util does is to determine a baseline count by raising its priority to 25 and performing come cpu intensive calculations. As a result, this baseline count reflects the count that should be obtained if only the event administrator any process I/O drivers are running in the system. The LACCs, LACCm, LACCf are expressed as a percentage of this baseline count.

Once the baseline count is determined at the high priority, cpu_util lowers its priority to a value of 2 and determines the count as before. The count is repeatedly computed in an infinite loop consuming whatever cpu is left for a priority 2 process. Whenever one of SLO, MED, or FAS timer events is received, the count is used to compute the LACx value as follows:

LACCs = (count_for_SLO_interval*assumed_SLO_time_interval)∕(baselinecount_for_SLO_interval*actual_time_interval)

LACCm = (count_for_MED_interval*assumed_MED_time_interval)∕(baselinecount_for_MED_interval*actual_time_interval)//

LACCf = (count_for_FAS_interval*assumed_FAS_time_interval)∕(baselinecount_for_FAS_interval*actual_time_interval)

Each of the above calculations for the SLO, MED, and FAS intervals are placed in their respective CyFlex statistical variable and the statistics are computed.


cpu_util &






The LACC computation is started by entering the following on the command line or placing it in the go script:

cpu_util &

Since the baseline count is determined with some of the CyFlex processes running, it is possible to get a single LAC value greater than 100 percent. As a result of the high priority compute bound calculations, the CyFlex watchdog will go off if the command is entered on the command line. This is not a problem in the older cells since the watch dog resets itself. However, in the newer cells the watchdog must be manually reset. Spawning cpu_util in the go script after spawning the scheduler would eliminate the watchdog going off. cpu_util is available for versions 00.Jul.B and forward.  LACC stands for Len’s Available CPU Calculation. 

See Also: