前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Java性能权威指南》笔记----Java性能调优工具

《Java性能权威指南》笔记----Java性能调优工具

作者头像
在周末
发布2019-09-11 15:54:00
5850
发布2019-09-11 15:54:00
举报
文章被收录于专栏:在周末的专栏在周末的专栏

OS

1、CPU

用户态时间(us):cpu执行应用代码所占时间的百分比。

内核态时间(sy):cpu执行内核代码所占时间的百分比,系统态时间与应用相关。

空闲时间(id):cpu空闲时间百分比。空闲可能的原因:

    1、应用被同步原语阻塞、等待锁释放

    2、应用等待某些东西,例如:查询数据库并等待返回结果

    3、应用的确无所事事

运行队列(r):所有正在运行和就绪状态(一旦有可用cpu就可以运行)的线程数。该数据最好小于或等于CPU个数,否则性能就可能会下降。如果长时间运队列过长,则可能是系统过载。

命令:vmstat 1 一秒内的CPU的占比

调优的目的:在尽可能短的时间内让cpu的利用率尽可能高。

2、IO

命令:iostat -xm 5

%util:IO时间占总时间的百分比。暗示了设备的繁忙程度。一般地,达到100%时表示设备已经接近满负荷运行了(如果是多磁盘,即使100%,由于磁盘的并发能力,索引磁盘未必达到瓶颈)

r/s和w/s:每秒读/写次数

rMB和wMB/s:每秒读/写大小

await:IO平均等待时间

Java

1、VM信息

  jcmd可用来查找运行的应用所在JVM的基本信息,包括所有调优标识的值。

  jcmd 56062 VM.uptime 虚拟机运行时长

  jcmd 56062 VM.system_properties 虚拟机系统属性

  jcmd 56062 VM.system_version JVM版本

  jcmd 56062 VM.command_line JVM命令行

  jcmd 56062 VM.flags [-all] JVM调优标识

  java -XX:+PrintFlagsInitial 可输出标志的默认值。

  jinfo在检查单个标志时(可以修改标记为manageable的标志)很有用。

  jinfo -flags 56062 获取进程中所有标志的值

  jinfo -flag PrintGCDetails 56062 获取单个标志的值

2、线程信息

  jstack 56062 或 jcmd 56062 Thread.print

3、类信息和实时GC

  jstat

4、堆转储

  jmap

性能分析工具

1、采样分析器

2、探查分析器

3、本地方法和线程时间线

4、本地分析器

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-09-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • OS
    • 1、CPU
      • 2、IO
      • Java
      • 性能分析工具
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档