async-profiler Java 性能剖析
async-profiler 是低开销的 Java 采样 profiler,支持 CPU、分配、锁、缓存未命中和 wall-clock 模式,能生成火焰图、JFR 和 collapsed 栈。它通过 JVMTI 和 perf_events 工作。
适合排查 Java 服务 CPU 高、GC 频繁、锁竞争和内存分配热点。
查看进程:
jps -l
CPU 采样 30 秒:
asprof -d 30 -e cpu -f profile.html <PID>
分配采样:
asprof -d 30 -e alloc -f alloc.html <PID>
锁竞争:
asprof -d 30 -e lock -f lock.html <PID>
输出 collapsed 栈:
asprof -d 30 -e cpu -o collapsed -f cpu.collapsed <PID>
生成 JFR:
asprof -d 30 -e cpu -o jfr -f profile.jfr <PID>
容器内 attach:
asprof -d 30 -e cpu -f /tmp/profile.html 1
SYS_PTRACE 或 CAP_SYS_ADMIN。