一、系统性能监控

系统性能工具用于确定系统运行的整体状态,基本定位问题所在。

Linux

– uptime

• 系统时间

• 运行时间

n 例子中为7分钟

• 连接数

n 每一个终端算一个连接

• 1,5,15分钟内的系统平均负载

n 运行队列中的平均进程数

– Top

• 第一行同uptime

• 第三行到第五行是CPU和内存的使用情况

• 图中下面的列表是每个进程使用CPU的情况

• 可以知道哪个程序占CPU最多

– vmstat

• 可以统计系统的CPU,内存,swap,io等情况

• 例子中的参数1为采样频率,4为采样次数

• 本例子说明CPU占用率很高,上下文切换频繁,说明系统有线程正在频繁切换

– pidstat

• 细致观察进程

• 需要安装

n sudo apt-get install sysstat

• 监控CPU

• 监控IO

• 监控内存

Windows

– 任务管理器

– Perfmon

Windows自带多功能性能监控工具

– pslist

n 命令行工具

n 可用于自动化数据收集

n 显示java程序的运行情况

二、JAVA自带工具

   

jps
–列出java进程,类似于ps命令
–参数-q可以指定jps只输出进程ID ,不输出类的短名称
–参数-m可以用于输出传递给Java进程(主函数)的参数
–参数-l可以用于输出主函数的完整路径
–参数-v可以显示传递给JVM的参数
 

   

jinfo
–可以用来查看正在运行的Java应用程序的扩展参数,甚至支持在运行时,修改部分参数
–-flag <name>:打印指定JVM的参数值
–-flag [+|-]<name>:设置指定JVM参数的布尔值
–-flag <name>=<value>:设置指定JVM参数的值
 

jmap
–生成Java应用程序的堆快照和对象的统计信息
–jmap -histo 2972 >c:\s.txt

Dump堆
jmap -dump:format=b,file=c:\heap.hprof 2972

jstack
–打印线程dump
–-l 打印锁信息
–-m 打印java和native的帧信息
–-F 强制dump,当jstack没有响应时使用

jstack 120 >>C:\a.txt
JConsole
–图形化监控工具
–可以查看Java应用程序的运行概况,监控堆信息、永久区使用情况、类加载情况等
 

Visual VM
–Visual VM是一个功能强大的多合一故障诊断和性能监控的可视化工具

性能监控:找到占用CPU时间最长的方法

三、实战分析

运行一程序ThreadBlockMain,期望输出Hello,World ,结果在程序运行后,程序卡死,没有预期输出。
 

Java程序HoldCPUMain运行后,发现占用CPU很高,希望能找到原因。

死锁

如何从jstack的输出中找出死锁
 

输出最后的总结
 

JVM学习五:性能监控工具的更多相关文章

  1. JVM学习--(七)性能监控工具

    前言 工欲善其事必先利其器,性能优化和故障排查在我们大都数人眼里是件比较棘手的事情,一是需要具备一定的原理知识作为基础,二是需要掌握排查问题和解决问题的流程.方法.本文就将介绍利用性能监控工具,帮助开 ...

  2. JVM学习五:JVM之类加载器之编译常量和主动使用

    在学习了前面几节的内容后,相信大家已经对JAVA 虚拟机 加载类的过程有了一个认识和了解,那么本节,我们就继续进一步巩固前面所学知识和特殊点. 一.类的初始化回顾 类在初始化的时候,静态变量的声明语句 ...

  3. JVM学习--(五)垃圾回收器

    上一篇我们介绍了常见的垃圾回收算法,不同的算法各有各的优缺点,在JVM中并不是单纯的使用某一种算法进行垃圾回收,而是将不同的垃圾回收算法包装在不同的垃圾回收器当中,用户可以根据自身的需求,使用不同的垃 ...

  4. jvm学习五: 方法执行过程

    方法执行过程:Java各个大版本更新提供的新特性(需要简单了解)

  5. JVM学习03:性能监控工具

    JVM学习03:性能监控工具 写在前面:本系列分享主要参考资料是  周志明老师的<深入理解Java虚拟机>第二版. 性能监控工具知识要点Xmind梳理 案例分析 案例分析1-JPS 案例分 ...

  6. JVM学习十二:JVM之性能监控工具

    前面我们学习了很多JVM相关的理论知识,那么本节将重点讲述的是工具的使用,正所谓:工欲善其事,必先利其器.因此,本节介绍常用的性能监控工具,用于性能监控和问题排查. 一.系统性能监控 系统性能工具用于 ...

  7. JVM内核-原理、诊断与优化学习笔记(七):性能监控工具

    文章目录 系统性能监控 系统性能监控- linux uptime top vmstat(虚拟内存统计) pidstat 系统性能监控 - windows 任务管理器 Perfmon Process E ...

  8. 深入理解JVM—性能监控工具

    (转自:http://yhjhappy234.blog.163.com/blog/static/31632832201222691738865/) 我们知道,在JVM编译期和加载器,甚至运行期已经做了 ...

  9. java之jvm学习笔记五(实践写自己的类装载器)

    java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...

随机推荐

  1. 解决vite+elementplus 打包后出现的下拉列表多出空元素的bug

    打包后下拉列表出现的空元素bug 之前的项目element-plus版本是 "^1.0.2-beta.70"  把他升级一下就好了 npm i element-plus@1.0.2 ...

  2. .net core在linux下图片中文乱码

    不得不吐槽一下,.net core 2.2的System.Drawing在linux有很多坑,又是依赖libgdiplus,又是依赖gdiplus,依赖解决了又来了个中文乱码,怎的一声哀叹 这里做个笔 ...

  3. 浅议像素化与体素化Part.1——平面图形像素化

    什么是像素化 学计算机的人往往都比较清楚图形和图像的区别,而且往往能够从数据结构的角度理解这两者的区别,一般来说,图形是由几何空间中的基本图元所组成,表现为用外部轮廓线条勾勒成的矢量图.例如由计算机绘 ...

  4. 初识python:多线程

    多线程:在一个程序中,独立运行的程序片断叫作"线程"(Thread),利用它编程的概念就叫作"多线程处理".即:一个进程中,多个线程. 举个例说明:就像是一列火 ...

  5. centos8 yum安装nginx后启动不了nginx

    起动报下列错误 移动到安装目录下起动报下列错误,说是端口被占用 输入journalctl -xe命令查看,发现如下: 这个是一个什么错误,度娘一下SElinux 输入sestatus查看下SElinu ...

  6. nvm安装vue-cli

    使用nvm可以更换nodejs版本.方便不同项目的切换 1.安装nvm(本人提供版本为1.1.9,当前最新) ① 到官网自行下载 https://github.com/coreybutler/nvm- ...

  7. Linux上天之路(七)之Vim编辑器

    vim 是 "vimsual interface IMproved"的简称,它可以执行输出.删除.查找.替换.块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他 ...

  8. mongodb基础整理篇————常规操作[二]

    前言 简单整理一下常规操作. 正文 虽然一般说写代码看的是思想,但是呢,如果不知道mongodb 有哪些常用的操作,那么你怎么能知道mongodb是否符合你的需求,比如说如果聚合功能都没有,你得自己写 ...

  9. 记一次ARM服务器(鲲鹏920)的PXE批量装机遇到的坑

    由于近期项目需要,在对一批华为鲲鹏920的ARM服务器(型号为天宫TG225 B1)进行批量装机的过程中,遇到了各种各样千奇百怪的bug(换个高情商的说法就是遇到了各种各样和x86服务器不一样的地方) ...

  10. 干掉 Postman?测试接口直接生成API文档,ApiPost真香!

    实不相瞒我的收藏夹里躺着很多优质的开发工具,我有个爱好平时遇到感兴趣的开发工具都会记录下来,然后有时间在慢慢研究.前几天刚给同事分享一款非常好用的API文档工具,真的被惊艳到了,粉丝朋友们也感受一下吧 ...