PRIMARY AND SECONDARY COUNTERS
- A primary counter is a counter that we should check first to detect any problem.
- If we detect a problem with primary counters then we can use secondary counters to have more info about that problem
- Remember, it´s very important that we pay attention to values over a period not peak values.
PRIMARY COUNTERS FOR CPU
- The main performance counter for detecting CPU problems is Processor% Processor Time and measures the percentage of time the processor is being used. Values under 50 % is healthy, values between 50-80 % we should be worried about and values between 50-80 % “Houston we have a problem”
Processor% Processor Time is the addition of two counters: % Privileged Time and % User Time
- Another primary performance counter is Processor(*)% Privileged Time, which measures the percentage of time the processor is being used by the Kernel, that is, the percentage of time that a thread is running in Privileged Mode. For example, when an application calls an Operating System function (disk operation, network, memory) this function runs in privileged Mode.
Values under 30 % are healthy, between 30-50% we should be worried about and values over 50% “Houston we have a problem”
SECONDARY COUNTERS FOR CPU
- SystemContext Switches/sec: Context switches take place when the kernel change the CPU assigned from a thread to another one. When this value is high it means that CPU is being pretty much shared, that is too many threads fighting for CPU resources. We should check this counter when % Privileged Time has high values. Recommended values are under 5000. We should start worrying with values of 2500x#CPUs. Prolonged values over 5000x#CPUs mean we have a problem.
- Processor(*)%Interrupt Time. Interrupt Time is the time that the CPU uses for interruptions, that is, in I/O operations like network and disk access. Therefore, high values of this counter may indicate that we should analyze the disk and network access performance. Healthy values are under 10%, worrying values between 10-20% and we have a problem when this value is higher than 20 %.
SystemProcessor Queue Length: It measures the number of threads are in queue, waiting for running. Healthy values should be between 0 and 1. Values between 2 and 5 may indicate a problem and prolonged values over 5 is meaning a problem.