Common Performance Problems in Application Server - Concurrency
Code Deadlock
Code Deadlock
Waiting Threads
“I simply
take the CPU Time and the Method Execution Time of a particular method,
component or framework. Here is an explanation of these two values:
§ CPU Time: Is the time spent on the CPU by the executed code
§ Execution Time: This is the total time the method takes to
execute. This includes time spent on the CPU, I/O, waiting for external systems
to respond, GC times and time spent waiting to enter synchronized code
blocks
I chart these
values and run increasing load against the web application. I compare how CPU
Time relates to Execution Time. The gap between these two values indicates time
that is spent on waiting for I/O, external systems or waiting to enter
synchronized code blocks”
How
to identify synchronization issues under load
Threads
Pool
When
thread pool is sized too small then thread pool utilization will be at or near
100%, requests waiting in execution queue and the CPU is underutilized. When a thread pool is sized too large then it
will have moderate thread pool utilization, very few requests waiting in the
execution queue but CPU utilization will be at or near 100%
Comments
Post a Comment