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 通过启动命令参数开启    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

P("Struggler") ?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值