Memory Leak Scenario
Memory leaks are likely to occur when a long-lived object holds a reference to a short-lived object. Although the short-lived object is no longer needed, because Holding its reference for a long life cycle prevents it from being recycled. This is the scenario where memory leaks occur in Java.
1. Check the CPU and memory usage during the process:
top –H –p 58527
2. Check the server memory.
df -h 查看磁盘情况 du -h --max-depth=1 文件目录占用资源情况。
3. Check the memory, cache area, usage and idleness.
free -m
S0C: The capacity (bytes) of the first survivor (survivor area) in the young generation
S1C: The second survivor in the young generation (bytes) The capacity of the survivor area (bytes)
S0U: The first survivor (survivor area) in the young generation currently uses space (bytes)
S1U: The second survivor in the young generation The survivor (survival area) currently uses space (bytes)
EC: The capacity of Eden (Eden) in the young generation (bytes)
EU: The current capacity of Eden (Eden) in the young generation Used space (bytes)
OC: Old generation capacity (bytes)
OU: Old generation currently used space (bytes)
PC: Perm (Persistent Generation) capacity (bytes)
PU: Perm (persistent generation) currently used space (bytes)
YGC: gc in the young generation from application startup to sampling Times
YGCT: Time (s) used for gc in the young generation from application startup to sampling time
FGC: Number of gcs from application startup to old generation (full gc) during sampling
FGCT: The time (s) used for gc from the application startup to the old generation (full gc) during sampling
GCT: The total time (s) used for gc from application startup to sampling time
4. View the execution program information.
jstack 2829 > 1.log grep -A 1'java.lang.Thread.State' jstack.log | wc -l
5. Download the heap file analysis code Dump.
The above is the detailed content of How to check memory leaks in java. For more information, please follow other related articles on the PHP Chinese website!