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


    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、本地分析器

  • 相关阅读:
    bootstrap
    前端框架 angularjs
    JAva集合框架
    圣诞
    IDEA
    科目三
    Bootstrap简介及Bootstrap里的栅格系统col-md/sm/xs-x;
    C# Windows service 定时发邮件功能 (用到webService)
    <转> 数据库索引的作用和优点缺点
    小知识
  • 原文地址:https://www.cnblogs.com/zaizhoumo/p/7560268.html
Copyright © 2020-2023  润新知