<!-- Baidu Button BEGIN -->
In fact, I have long wanted to make a summary of the positioning of performance problems. As it happens, I have recently done some special work on locating performance problems of Java WEB applications. Here I briefly record some typical methods of locating performance problems.
(For example, low TPS, insufficient throughput, etc.: these indicator problems are caused by multiple indicators mentioned below, so they are not within the scope of separate discussion)
Application CPU usage is high, possible factors include:
Complex logic and low algorithm efficiency
excessive logic
Inspection Method:
JProfiler checks for hot spots and waits until the system is stable to collect data
Intercept stacks and check runnable threads, especially helpful for locating high CPU usage caused by insufficient throughput
The stack is full, possible factors include:
Heap configuration is too small
The cache configuration is too large
memory leak
Untimely GC
Inspection Method:
jmap -heap Get heap details
jmap -histo get the number of distinct objects
Multiple jmap -heap or jhat to compare object changes between two states
GC logs, use tools to assist analysis
DB bottleneck, possible factors include:
Large table query
unreasonable index
Large table association
To be added
Inspection Method:
Analyze the execution plan of SQL. For example, some SQLs can go through full table scan with indexed results; which SQLs have high cost and need to be optimized
To be added.
Disk I/O bottleneck, possible factors include:
slightly
Inspection Method:
vmstat
iostat
Network bottlenecks, possible factors include:
slightly
Inspection Method:
When viewing the Tomcat thread stack, you will find that N multi-threads in the Tomcat thread pool are in the data reading state
ifconfig
other problems:
LoadRunner bottleneck
Development Mode Configuration Check