Symantec Directory : Explanation on CPU Starvation Detected message
search cancel

Symantec Directory : Explanation on CPU Starvation Detected message

book

Article ID: 110666

calendar_today

Updated On:

Products

CA Directory CA Identity Manager CA Identity Portal CA Identity Suite SITEMINDER

Issue/Introduction



Following message popup in ALARM log of Symantec Directory 12.6 and higher version of DSA and wonder what it means. Information found on this within online product documentation is not clear as far as knowing how the calculations are made.

e.g.
ALARM log will show:
[64] 20180720.135601.560 DSA_E3730 CPU Seconds 13 has fallen below threshold 55, CPU starvation detected

At the same time, the STATS log will show:
[64] 20180720.135601.560 STATS : Assocs 108 NilCredit 0 Queue 3+3 MWQ 3/3 Active 261 Ops 3361 Entries 376851 Mem 153/17484 CPU Seconds 13/60 CPU kTicks 3
 

Environment

Release:
Component: ETRDIR

Resolution

There are two logs to review. ALARM log and STATS log of the DSA to understand how it all works and calculated.

There is a scheduler in DXserver which will increment a parameter (cpustats) by 1 for every one second. At the end of 60 seconds, DXserver will check this parameter.
 
In ideal situation, meaning, when CPU is allocating enough time to DXserver, the value of cpustats should be 60 in 60 seconds and STATS log will indicate this as 60/60
 
Suppose for some reason if the CPU is not allocating enough time, the counter of cpustats will go less than 60 and STATS log will indicate this with something like 13/60.
 
In above example, in last 60 seconds, the CPU has given only 13 seconds for DXserver.
 
Coming to configuration:
set cpu-starvation-threshold = <num>;
 
This parameter will let the DXserver know, when to log a warning messages in wan log.
 
Default value is 5, for example when cpustats goes less than 55 (i.e. the value of 60-5), DXserver will log an entry.
 
If you see 56/60 in STATS log, it will not log any message in ALARM log as the system did not hit the the threshold of 5.
If you see 53/60 in STATS log, it will make an entry in ALARM log such as "CPU Seconds 53 has fallen below threshold 55, CPU starvation detected"

e.g.
ALARM log will show:
[64] 20180720.135601.560 DSA_E3730 CPU Seconds 53 has fallen below threshold 55, CPU starvation detected

At the same time, the STATS log will show:
[64] 20180720.135601.560 STATS : Assocs 108 NilCredit 0 Queue 3+3 MWQ 3/3 Active 261 Ops 3361 Entries 376851 Mem 153/17484 CPU Seconds 53/60 CPU kTicks 3

The value 55 in ALARM log will be constant, is based on what we configure "cpu-starvation-threshold" parameter. In above example it is the default of 5, so the value would be 60-5 =55.
 
If 'cpu-starvation-threshold' is set to 20, and cpustats goes less than 40, DXserver will log an entry in ALARM log.

e.g.
ALARM log will show:
[64] 20180720.135601.560 DSA_E3730 CPU Seconds 33 has fallen below threshold 40, CPU starvation detected

At the same time, the STATS log will show:
[64] 20180720.135601.560 STATS : Assocs 108 NilCredit 0 Queue 3+3 MWQ 3/3 Active 261 Ops 3361 Entries 376851 Mem 153/17484 CPU Seconds 33/60 CPU kTicks 3

The value of 40 in ALARM log will be constant, is based on what is configured for "cpu-starvation-threshold" parameter. In the above example it is set to 20, so the value would be 60-20 = 40.
 
Hope above explanation has provide good understanding on how to read CPU starvation message.

 
 

Additional Information