第三章 虚拟机性能监控与故障处理工具
来源:互联网 发布:电商淘宝培训 编辑:程序博客网 时间:2024/06/05 13:32
- 一前言
- 二虚拟机性能监控
- 1JPS虚拟机进程状况工具
- 2jstat虚拟机统计信息监视工具
- 3jinfoJava配置信息工具
- 4jmapJava内存映像工具
- 5jhat虚拟机堆存储分析工具
- 6jstackJava堆栈跟踪工具
- 7JDK可视化工具
- 71JConsoleJava监视与管理控制台
- 72 死锁实例
- 1JPS虚拟机进程状况工具
一、前言
除开java与javac,你还知道JDK的其他命名吗?
虚拟机故障处理与调优一般怎么处理?
JDK强大而且小巧的工具,可以帮助我们实现很多骚操作,如果线上服务器你实在难以近身,还提供了tools.jar的类库以备你在应用程序中实现强大监控功能,让你骚起来。同时帮你解决一些虚拟机故障。
二、虚拟机性能监控
2.1JPS:虚拟机进程状况工具
jps命令:jps [options] [hostid]
示例如下:
ycydeMacBook-Pro:~ ycy$ jps -l96506 org.jetbrains.jps.cmdline.Launcher96509 sun.tools.jps.JpsycydeMacBook-Pro:~ ycy$
2.2jstat:虚拟机统计信息监视工具
它显示进程汇总的类加载、内存、垃圾收集、JIT等数据。
jstat命令格式:jstat [option vmid ] [interval [s|ms] [count]]
实例如下
ycydeMacBook-Pro:~ ycy$ jps -l96506 org.jetbrains.jps.cmdline.Launcher96988 sun.tools.jps.JpsycydeMacBook-Pro:~ ycy$ jstat -gcutil 96506 S0 S1 E O M CCS YGC YGCT FGC FGCT GCT 0.00 47.75 50.90 0.05 96.69 90.64 1 0.006 0 0.000 0.006ycydeMacBook-Pro:~ ycy$
2.3jinfo:Java配置信息工具
实时查询虚拟机参数
jinfo命令格式:jinfo [options] pid
ycydeMacBook-Pro:~ ycy$ jinfo 96506Attaching to process ID 96506, please wait...Debugger attached successfully.Server compiler detected.JVM version is 25.71-b15Java System Properties:os.name = Mac OS Xjava.vm.specification.vendor = Oracle Corporationjava.runtime.version = 1.8.0_71-b15·····
2.4jmap:Java内存映像工具
查询finalize执行队列、Java堆和永久代信息,使用哪种收集器等。
ycydeMacBook-Pro:~ ycy$ jps -l97077 sun.tools.jps.Jps96506 org.jetbrains.jps.cmdline.LauncherycydeMacBook-Pro:~ ycy$ jmap -heap 96506Attaching to process ID 96506, please wait...Debugger attached successfully.Server compiler detected.JVM version is 25.71-b15using thread-local object allocation.Parallel GC with 8 thread(s)Heap Configuration: MinHeapFreeRatio = 0 MaxHeapFreeRatio = 100 MaxHeapSize = 734003200 (700.0MB) NewSize = 89128960 (85.0MB) MaxNewSize = 244318208 (233.0MB) OldSize = 179306496 (171.0MB) NewRatio = 2 SurvivorRatio = 8 MetaspaceSize = 21807104 (20.796875MB) CompressedClassSpaceSize = 1073741824 (1024.0MB) MaxMetaspaceSize = 17592186044415 MB G1HeapRegionSize = 0 (0.0MB)
2.5jhat:虚拟机堆存储分析工具
生成http页面,我们后续使用其他工具分析,因为在服务器上面生成一个类型http://localhost:7000的分析页面比较不切合实际。
2.6jstack:Java堆栈跟踪工具
生成此时此刻的线程快照,为了定位线程长时间停顿原因、线程死锁、死循环、请求外部资源等待导致的长时间停顿的原因。
jstack命名格式:jstack [options] vmid
实际用法:我们在调用线程的时候,有一个getAllstackTraces()方法,可以一样输出StackTraceElement对象。
2.7JDK可视化工具
2.7.1JConsole:Java监视与管理控制台
package com.ycy.java.jconsole;import java.util.ArrayList;import java.util.List;/** * @Copyright © 2017 . All rights reserved. Created with IntelliJ IDEA. * @project: untitled * @Package: com.ycy.java.jconsole * @Description: -Xms100M -Xmx100M * @autho: ycy * @Date: 2017-11-01 * @Time: 23:22 */public class OOMObject { public byte[] placeholder=new byte[64*1024]; public static void fillHeal(int num) throws InterruptedException { List<OOMObject> list=new ArrayList<>(); for (int i=0;i<num;i++) { //延迟设置 Thread.sleep(50); list.add(new OOMObject()); } } public static void main(String[] args) throws InterruptedException { fillHeal(1000); System.gc(); System.out.println(1); }}
结果:
2.7.2 死锁实例
/** * 线程死循环演示 */ public static void createBusyThread(){ Thread thread=new Thread(new Runnable() { @Override public void run() { while (true){ //34行 } } },"testBusyThread"); thread.start(); } static class SynAddRunable implements Runnable{ Integer a,b; public SynAddRunable(Integer a,Integer b){ this.a=a; this.b=b; } @Override public void run() { synchronized (a){ synchronized (b){ System.out.println(a+b); } } } } public static void main(String[] args) throws InterruptedException { //#内存变化// fillHeal(1000);// System.gc();// System.out.println(1); //#线程死循环// createBusyThread(); //死锁代码 for (int i = 0; i <100 ; i++) { new Thread(new SynAddRunable(1,2)).start(); new Thread(new SynAddRunable(2,1)).start(); } }
结果
阅读全文
0 0
- 第三章 虚拟机性能监控与故障处理工具
- 虚拟机性能监控与故障处理工具
- 虚拟机性能监控与故障处理工具
- 虚拟机性能监控与故障处理工具
- 虚拟机性能监控与故障处理工具
- 虚拟机性能监控与故障处理工具
- 虚拟机性能监控与故障处理工具
- 虚拟机性能监控与故障处理工具
- 虚拟机性能监控与故障处理工具
- 虚拟机性能监控与故障处理工具
- 虚拟机性能监控与故障处理工具
- 虚拟机性能监控与故障处理工具
- 虚拟机性能监控与故障处理工具
- 虚拟机性能监控与故障处理工具
- 第4章 虚拟机性能监控与故障处理工具
- 第4章 虚拟机性能监控与故障处理工具
- Java虚拟机8:虚拟机性能监控与故障处理工具
- Java虚拟机(三):虚拟机性能监控与故障处理工具
- 小Tips
- [2007CQOI]余数求和——除法分块
- Java基础之Dalvik和JVM的认识
- JVM分析
- 京东成武林魔头?几十家店铺因被侵害经营集体退出京东
- 第三章 虚拟机性能监控与故障处理工具
- android fat-aar.gradle中文注释
- Visual Studio 2017的离线安装包下载和安装
- 使用selenium中的driver.close()函数
- android中异常oom和memory leak
- vue项目-搭建(1)
- 2017 ccpc 秦皇岛 M(几何)
- Noip 2013 火柴排队
- Spring与Mybatis整合的MapperScannerConfigurer处理过程源码分析