Yes, Processor is a Bottleneck. What’s next?

A processor bottleneck occurs when one or more processes consume the majority of the processor time.  This forces threads that are ready to be executed to wait in a queue for processor time.

We identify if processor is bottleneck by investigating the processor utilization (Processor \ % Processor Time or System \ % Processor Time) and threads waiting in queue (System \ Processor Queue Length).  Please see here for more information.

Once we have found that there is a bottleneck in terms of processor, we need to proceed ahead with further analysis.  Following are few of the questions in general without in context of some specific application, which I think we need to find answers for them and act accordingly.

1.       Is processor bottleneck due to lack of physical memory in the system?

A memory bottleneck can sometimes look like a processor or disk bottleneck.  If the system does not have enough physical memory to store the code and data that are needed, the processor spends substantial time paging.  See here for more information.

Notes:
§         None

2.       Is processor bottleneck due to usage of network interface and Disk I/O well above its capacity?

A network and disk I/O bottleneck look like a processor bottleneck as the processor spends substantial time in context switching and interrupts.  See here for identifying disk I/O bottleneck and see here if bottleneck present in network interface.

Notes:
§         None

3.       Is processor bottleneck due to Interrupts or Deferred Procedure Calls from multiple other hardware devices like clock, the mouse, peripheral devices etc. except disk drives and network interface?

Once it is proven that disk I/O or network interface is not a bottleneck, it is time for identifying bottleneck present due to interrupts from other hardware devices like mouse, clock etc.  Monitor ‘Processor \ Interrupts / sec’ and ‘Processor \ % DPC Time’ with respect to elapsed time to find out that processor is not busy because of handling lots of interrupts or deferred procedure calls.

Processor \ Interrupts / sec: Average number of interrupts in incidents per second, at which the processor received and serviced hardware interrupts.

Processor \ % DPC Time: Deferred procedure calls are interrupts that run at a lower priority than standard interrupts.

Notes:
§         The devices normally interrupt the processor when they have completed a task or require attention, suspending normal thread execution.
§         Client requests can be major cause of interrupts and deferred procedure calls.

4.       Is processor bottleneck due to maximum time spent in privileged mode or in user mode?

Monitor ‘Processor \ % Privileged Time’ and ‘Processor \ % User Time’ with respect to elapsed time and find out whether kernel level code or user level code was being processed during the performance issue.

Processor \ % Privileged Time:  Only privileged mode code has direct access to hardware and memory.  Application threads can be switched to privileged mode to run operating system services.

Processor \ % User Time: User mode is restricted processing mode designed for applications, environment sub systems and integral systems.

Notes:
§         None

5.       Which process / service to target for analyzing the bottleneck further?

Monitor ‘Process \ % Processor Time’ of all processes.  Find out the processes, consuming disproportionate share of processor time.

Process \ % Processor Time: The average percentage of processor use attributable to each processor.

Notes:
§         None


References:
None

Comments

Popular posts from this blog

Performance Test Run Report Template

Understanding Blockchain

Bugs Management in Agile Project