性能优化可使用的工具

在分析 CPU、内存、磁盘等的性能指标时,有几种工具是高频出现的,如 top、vmstat、pidstat,这里稍微总结一下:

  1. CPU:top、vmstat、pidstat、sar、perf、jstack、jstat;
  2. 内存:top、free、vmstat、cachetop、cachestat、sar、jmap;
  3. 磁盘:top、iostat、vmstat、pidstat、du/df;
  4. 网络:netstat、sar、dstat、tcpdump;
  5. 应用:profiler、dump分析。

上述的很多工具,大部分是用于查看系统层指标的,在应用层,除了有 JDK 提供的一系列工具,一些商用的产品如 gceasy.io(分析 GC 日志)、fastthread.io(分析线程 dump 日志)也是不错的。

排查 Java 应用的线上异常或者分析应用代码瓶颈,可以使用阿里开源的 Arthas ,这个工具非常强大,下面简单介绍下。

Arthas 主要面向线上应用实时诊断,解决的是类似线上应用异常了,需要在线进行分析和定位」的问题,当然,Arthas 提供的一些方法调用追踪工具,对我们排查诸如「慢查询」等问题,也是非常有帮助的。Arthas 提供的主要功能有:

  1. 获取线程统计,如线程持有的锁统计、CPU 利用率统计等;
  2. 类加载信息、动态类加载、方法加载信息;
  3. 调用栈追踪,调用耗时统计;
  4. 方法调用参数、结果检测;
  5. 系统配置、应用配置信息;
  6. 反编译加载类;
posted @ 2020-01-31 23:56  mabiao008  阅读(193)  评论(0编辑  收藏  举报