Bottleneck Removal Checklist


This checklist helps identify various common bottlenecks and their causes. Please refer to Chapter 13, Common Bottleneck Symptoms, for a complete description of how to diagnose and resolve these bottlenecks.

Underutilization

Insufficient network capacity

Check for sufficient network capacity (network protocol analyzer).

Reduce amount of data moved across network.

Application serialization

Check for highly synchronized code (thread trace).

Insufficient resources

Check system resources (memory, and so on).

Check application resources (thread pools, and so on).

Check remote resources.

Stalled.

Check again for any overutilized back-end resource.

Insufficient test client resource

Check for overutilized client CPU resource.

Check client network cards.

Scalability

Underutilization on large SMP systems (eight or more processors).

Add more HTTP server and application server processes.

Bursty Utilization

Application serialization

Check for highly synchronized code (thread trace).

Client synchronization

Check for test client traffic "bursts."

Verify requests actually reaching the HTTP server and application server (server monitors and thread trace).

Compare response time against the length of the slowdown .

Review think times in test scripts.

Review virtual user test definitions.

Back-end systems

Check for deadlocks.

Check EJB transaction isolation levels.

Garbage collection

Use verbosegc to check frequency and length of garbage collection cycles.

Check JVM maximum heap size .

Exhausted resources

Check for exhausted resources during the idle period.

Check for resources that recycle or timeout on the same interval as the length of the slowdown/idle period.

Network issues

Check for network timeouts (network protocol analyzer).

Reduce components under test to isolate the problem component.

High CPU Utilization

High user CPU (application server)

Application needs tuning.

Look at String processing, other Java best practices.

Profile application, and reduce path length.

Look at response time.

Check for low response time. Perhaps high CPU is OK, and higher client loads still meet response time objectives.

High system CPU (application server)

If HTTP server is co-resident, reduce HTTP listeners or off-load HTTP server.

Stop other processes on application server.

High wait CPU (application server or database)

Check for excessive logging.

Check for sufficient disk space.

For databases, consider adding platters to reduce contention .

Uneven Cluster Loading

Network issues

Check network hardware.

Check firewall configuration.

Routing issues

Check IP affinity routing.



Performance Analysis for Java Web Sites
Performance Analysis for Javaв„ў Websites
ISBN: 0201844540
EAN: 2147483647
Year: 2001
Pages: 126

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net