文档章节

jstat命令并获取JVM运行信息

秋风醉了
 秋风醉了
发布于 2016/04/12 23:17
字数 519
阅读 254
收藏 10

jstat命令并获取JVM运行信息

先来了解一下java.lang.management包的基本信息,提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。

下面代码就是使用了该软件包的类,获取当前运行的java程序的pid,然后运行jstat命令获取jvm的运行信息,

package com.usoft.sort;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.management.ManagementFactory;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by xinxingegeya on 16/4/12.
 */
public class JstatMain {

    /**
     * S0 — Heap上的 Survivor space 0 区已使用空间的百分比
     * S1 — Heap上的 Survivor space 1 区已使用空间的百分比
     * E — Heap上的 Eden space 区已使用空间的百分比
     * O — Heap上的 Old space 区已使用空间的百分比
     * M — Metaspace区已使用空间的百分比
     * CCS-Compressed class space capacity (kB)
     * YGC — 从应用程序启动到采样时发生 Young GC 的次数
     * YGCT– 从应用程序启动到采样时 Young GC 所用的时间(单位秒)
     * FGC — 从应用程序启动到采样时发生 Full GC 的次数
     * FGCT-从应用程序启动到采样时 Full GC 所用的时间(单位秒)
     * GCT — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)
     */
    public static void main(String args[]) throws IOException {

        Map<String, Object> monitor = new HashMap<>();

        List<String> statColumn = Arrays.asList("S0", "S1", "E", "O", "M", "CCS", "YGC", "YGCT", "FGC", "FGCT", "GCT");

        String name = ManagementFactory.getRuntimeMXBean().getName();
        System.out.println(name);
        String pid = name.substring(0, name.indexOf("@"));
        Process process = Runtime.getRuntime().exec("jstat -gcutil " + pid + " 5000");

        //通过process拿到jstat命令的执行结果的输入流
        InputStreamReader isr = new InputStreamReader(process.getInputStream());
        BufferedReader bufferedReader = new BufferedReader(isr);

        String line = null;
        while ((line = bufferedReader.readLine()) != null) {
            String[] stats = line.trim().split("[ ]+");
            if (stats.length == statColumn.size()) {
                for (int i = 0; i < stats.length; i++) {
                    monitor.put(statColumn.get(i), stats[i]);
                    System.out.println(statColumn.get(i) + ":" + stats[i]);
                }
                System.out.println("=====");
            }
        }
    }
}

 

运行结果,

1142@Yale-Li
S0:S0
S1:S1
E:E
O:O
M:M
CCS:CCS
YGC:YGC
YGCT:YGCT
FGC:FGC
FGCT:FGCT
GCT:GCT
=====
S0:0.00
S1:0.00
E:16.01
O:0.00
M:17.19
CCS:19.74
YGC:0
YGCT:0.000
FGC:0
FGCT:0.000
GCT:0.000
=====
S0:0.00
S1:0.00
E:16.01
O:0.00
M:17.19
CCS:19.74
YGC:0
YGCT:0.000
FGC:0
FGCT:0.000
GCT:0.000
=====

=========END=========

© 著作权归作者所有

共有 人打赏支持
秋风醉了
粉丝 237
博文 578
码字总数 419908
作品 0
朝阳
程序员
JVM:查看java内存情况命令

jinfo:可以输出并修改运行时的java 进程的opts。 jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。 jstat:一个极强的监视VM内存工具。...

BazingaYou
2013/11/15
0
0
JVM性能调优监控工具jps、jstack、jstat、jmap、jinfo使用详解

是什么 jps 查看所有的jvm进程,包括进程ID,进程启动的路径等等。 我自己也用PS,即:ps -ef | grep java jstack 观察jvm中当前所有线程的运行情况和线程当前状态。 系统崩溃了?如果java程...

xionghuiCoder
2015/08/13
0
0
JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, js...

jstack -- 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具...

老大做IT
2013/05/02
0
0
jvm优化必知系列——监控工具

这是jvm优化系列第二篇: jvm优化——垃圾回收 通过上一篇的jvm垃圾回收知识,我们了解了jvm对内存分配以及垃圾回收是怎么来处理的。理论是指导实践的工具,有了理论指导,定位问题的时候,知...

wier
2017/10/18
0
14
jdk自带分析vm工具(jdk 5.0以上版本)

一、概述 SUN 的JDK中的几个工具,非常好用。秉承着有免费,不用商用的原则。以下简单介绍一下这几种工具。(注:本文章下的所有工具都存在JDK5.0以上版本的工具集里,同javac一样,不须特意安...

王大叔爱编程
2014/07/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

linux 系统的运行级别

运行级别 运行级别 | 含义 0 关机 1 单用户模式,可以想象为windows 的安全模式,主要用于修复系统 2 不完全的命令模式,不含NFS服务 3 完全的命令行模式,就是标准的字符界面 4 系统保留 5 ...

Linux学习笔记
今天
2
0
学习设计模式——命令模式

任何模式的出现,都是为了解决一些特定的场景的耦合问题,以达到对修改封闭,对扩展开放的效果。命令模式也不例外: 命令模式是为了解决命令的请求者和命令的实现者之间的耦合关系。 解决了这...

江左煤郎
今天
3
0
字典树收集(非线程安全,后续做线程安全改进)

将500W个单词放进一个数据结构进行存储,然后进行快速比对,判断一个单词是不是这个500W单词之中的;来了一个单词前缀,给出500w个单词中有多少个单词是该前缀. 1、这个需求首先需要设计好数据结...

算法之名
昨天
15
0
GRASP设计模式

此文参考了这篇博客,建议读者阅读原文。 面向对象(Object-Oriented,OO)是当下软件开发的主流方法。在OO分析与设计中,我们首先从问题领域中抽象出领域模型,在领域模型中以适当的粒度归纳...

克虏伯
昨天
1
0
Coding and Paper Letter(四十)

资源整理。 1 Coding: 1.Tomislav Hengl撰写的非官方作者指南:Michael Gould•Wouter Gerritsma。 UnofficialGuide4Authors 2.R语言包rwrfhydro,社区贡献的工具箱,用于管理,分析和可视化...

胖胖雕
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部