转自:https://www.cnblogs.com/saiQsai/p/10353044.html

1、jps

查看java进程,得到进程ID:7854

作用等同于:ps -ef | grep java

2、jstat

监视虚拟机各种运行态信息

常用:jstat -gcutil PID,监视java堆状况

远程机器上无法直接使用jstat命令,解决方法参考:https://wiki.sankuai.com/pages/viewpage.action?pageId=841802032

chroot --userspec=99:99 / sh -c 'jstat -gcutil 7854'的输出如下:

S0:Survivor0区已使用空间的百分比

​S1:Survivor1区已使用空间的百分比

​E:Eden区已使用空间的百分比

​O:老年代已使用空间的百分比​

P:永久代已使用空间的百分比​

YGC:从应用程序启动到采样时发生Young GC的次数

​YGCT:从应用程序启动到采样时Young GC所用的时间(单位秒)

​FGC:从应用程序启动到采样时发生Full GC的次数

​FGCT:从应用程序启动到采样时Full GC所用的时间(单位秒)​

GCT:从应用程序启动到采样时发送GC的总时间(单位秒)

3、jstack

生成虚拟机当前时刻的线程快照

jstack PID | grep 16进制线程ID查看线程信息

比如要到java进程中最消耗CPU的那个线程的信息:

(1)top -Hp 7854

找到最耗CPU的线程ID是7975

(2)printf '%x\n' 7975

把该线程ID转为16进制,为1f27

(3)chroot --userspec=99:99 / sh -c 'jstack 7854 | grep -A 20 1f27'

输出线程的堆栈信息

可以看到是cat中的程序

 
 

JDK常用命令的更多相关文章

  1. JDK常用命令行工具(基于JDK10)

    虽然我是在jdk10环境下, 但是大体上和jdk8是差不多的. 总共有这么多 本来想着一口气把所有命令都边学边总结一下的, 结果发现....有些还真的不是很常用....或者说我这个水平还接触不到那么多 ...

  2. JDK 常用命令

    一) 引言:    当我们安装完JDK时,除了必须的编译运行以外,它就已经自带了很多辅助工具.正所谓“工欲善其事,必先利其器.”如果能用好这些工具,它们将大大方便你的开发.它们的实用和方便有时甚至会使 ...

  3. JDK常用命令(一)jps、jstat

    曾几何时,我们学习java都不再研究jdk而直接使用IDEA.eclipse和Netbeans,仿佛我们就认为我们的程序是这些编辑器编译出来的,这时多么可笑.殊不知,编辑器就是方便我们编辑开发的,而真 ...

  4. JDK常用命令(三)jmap

    jmap jmap,Java Memory Map.主要用于打印指定Java进程(或核心文件.远程调试服务器)的共享对象内存映射或堆内存细节. jmap命令可以获得运行中的jvm的堆的快照,从而可以离 ...

  5. JDK常用命令(二)jstack

    Dump Dump文件是进程的内存镜像.可以把程序的执行状态通过调试器保存到dump文件中.Dump文件一般用来给驱动程序编写人员调试驱动程序用的,在java中用来分析正在运行的程序在内存中的堆栈信息 ...

  6. JDK常用命令行工具使用

  7. Java常用命令与参数设置

    我介绍的JDK版本: 首先.介绍下JDK常用参数设置,如下是我个人环境的参数: -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m 我们 ...

  8. Java的cmd配置(也即Java的JDK配置及相关常用命令)——找不到或无法加载主类 的解决方法

    Java的cmd配置(也即Java的JDK配置及相关常用命令) ——找不到或无法加载主类  的解决方法 这段时间一直纠结于cmd下Java无法编译运行的问题.主要问题描述如下: javac 命令可以正 ...

  9. Java学习系列(一)Java的运行机制、JDK的安装配置及常用命令详解

    俗话说:“十五的月亮十六圆”.那学习是不是也是如此呢?如果把月亮看成是我们的愿望,那十五便是我们所处的“高原期”,坚持迈过这个坎,我相信你的愿望终究会现实的.记得马云曾说:今天很残酷,明天更残酷,后天 ...

随机推荐

  1. Mac上安装配置和简单使用PostgreSQL(仍然很不懂)

    因为想要使用推荐的rails-template.需要使用postgres.并初始化了一个用户postgres,密码是postgres.( e.g. $ createuser -d postgres ) ...

  2. Django rest framework源码分析(一) 认证

    一.基础 最近正好有机会去写一些可视化的东西,就想着前后端分离,想使用django rest framework写一些,顺便复习一下django rest framework的知识,只是顺便哦,好吧. ...

  3. C++ 类型转换的特殊用法

    C++ 类型转换的特殊用法 下面是ossimLsrRay.h中的一个例子 /*! * CASTING OPERATOR: ossimEcefRay() * Looks like a construct ...

  4. JS之Iterations

    for in.for of.for each in 1.for in:用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作),for ... in 循环中的代码每执行一次,就会对数组的元素或者 ...

  5. 用压测模拟并发、并发处理(synchronized,redis分布式锁)

    使用工具:Apache an 测压命令: ab -n 100 -c 100 http://www.baidu.com -n代表模拟100个请求,-c代表模拟100个并发,相当于100个人同时访问 ab ...

  6. 使 docker 容器可以正常 mount privileged

    [docker]privileged参数 privileged参数   $ docker help run ... --privileged=false Give extended privilege ...

  7. 关于ppt的字体(转载)

    壹文钱:教程(13)——字体篇(上) 2015-11-25 @嘉文钱 幻方秋叶PPT 前三期嘉文给大家说了颜色,想复习的童鞋,链接在此: 壹文钱:教程(10)——色色,你好! 壹文钱:教程(11)—— ...

  8. Linux下sniffer实现(转)

    转发网址:https://blog.csdn.net/eqiang8271/article/details/8489769 //Example 1. #include <stdio.h> ...

  9. 对Linux内核中进程上下文和中断上下文的理解

    内核空间和用户空间是操作系统理论的基础之一,即内核功能模块运行在内核空间,而应用程序运行在用户空间.现代的CPU都具有不同的操作模式,代表不同的 级别,不同的级别具有不同的功能,在较低的级别中将禁止某 ...

  10. Java移位运算符 “

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zjx409/article/details/37569055 左移运算符(<<) 基本使 ...