Java 性能工具箱

Java 性能工具箱

操作系统工具和分析

  1. vmstat 1 虚拟内存统计/秒
    iostat -xm 5 监控系统设备的I/O负载情况
    ethtool eth0 查看网卡带宽(1000兆 125MB/s)
    nicstat -i eth0 1 监控网卡eth0的使用情况
    网络无法维持在百分之百的使用率,如果持续超过40%就说明接口饱和了。
    java只是利用了操作系统的网络参数接口
    对于网络应用程序,监控网络不适瓶颈的可能性排查掉
    向网络写入数据的应用程序的瓶颈2:
    写入的效率低——吞吐量低
    写入数据太多——吞吐量高

java 监控工具

  1. jcmd 进程基本信息
    jconsole jvm的活动图形化视图 线程的使用,类和GC的活动
    jmap 提供堆转储和jvm内存使用信息
    jinfo 查jvm系统属性,动态设置系统属性
    jstack 转储java进程的栈信息
    jstat 提供GC和类加载的活动信息
    jvisualvm 监控jvm的GUI工具

性能分析工具

  1. 运行性能分析工具时开启并发GC,性能分析工具不合时宜的Full GC暂停会导致缓冲区溢出

采样分析器

0.性能分析工具有两种模式
采样模式和探查模式

1.采样分析器
性能分析器只有在线程到达安全点之后才能获取线程的栈轨迹(stack trace)
线程进入安全点(safepoint)的情况:(设置jvm参数进入安全点 -XX:+UseSafePoint )
在同步锁上阻塞
等待I/O时阻塞
等待管程时阻塞
线程挂起
火焰图async-profiler开源项目
./profiler.sh -d 30 -f profile.html 487396
./profiler.sh -d 20 -e alloc -f hotcodealloc.html 487396

2.探查分析器
根据侵入性,提供更多关于应用程序内部正在发生什么的信息

3.阻塞方法和线程时间线
线程阻塞是不是性能问题的原因,检查线程为什么阻塞

JFR Java Flight Recorder

对于JVM的过去数据进行轻量级数据分析
jdk 8 通过启动命令参数开启    

你可能感兴趣的:(Java性能指南,java,jvm)