jps:虚拟机进程状况工具

jps可以用来查看虚拟机进程,基本等同于ps -ef|grep java

#查看jps的使用文档
[root@localhost script]# jps -help
usage: jps [-help]
jps [-q] [-mlvV] [<hostid>] Definitions:
<hostid>: <hostname>[:<port>] #查看虚拟机的进程号
[root@localhost script]# jps
4176 Jps
3659 swaggerdemo-0.0.1-SNAPSHOT.jar #查看虚拟机的进程号,只输出进程号
[root@localhost script]# jps -q
4192
3659 #输出虚拟机启动时传给main方法的参数
[root@localhost script]# jps -m
4208 Jps -m
3659 swaggerdemo-0.0.1-SNAPSHOT.jar #输出主类的全名,或者jar的全路径
[root@localhost script]# jps -l
4224 sun.tools.jps.Jps
3659 /data/services/demo/swaggerdemo-0.0.1-SNAPSHOT.jar #输出jvm的参数
[root@localhost script]# jps -v
4240 Jps -Denv.class.path=.:/usr/java/jdk1.8.0_131/lib/dt.jar:/usr/java/jdk1.8.0_131/lib/tools.jar -Dapplication.home=/usr/java/jdk1.8.0_131 -Xms8m
3659 swaggerdemo-0.0.1-SNAPSHOT.jar -Dloader.path=/data/services/demo -Dlog.path=/data/logs -Xms256m -Xmx512m #输出-l和-v的合集
[root@localhost script]# jps -lv
4256 sun.tools.jps.Jps -Denv.class.path=.:/usr/java/jdk1.8.0_131/lib/dt.jar:/usr/java/jdk1.8.0_131/lib/tools.jar -Dapplication.home=/usr/java/jdk1.8.0_131 -Xms8m
3659 /data/services/demo/swaggerdemo-0.0.1-SNAPSHOT.jar -Dloader.path=/data/services/demo -Dlog.path=/data/logs -Xms256m -Xmx512m

jstat:虚拟机统计信息监视工具

用来监视虚拟机各种运行状态信息的命令行工具,可以显示虚拟机进程中类装载、内存、垃圾回收、JIT编译等运行数据,是运行期定位问题的首选工具。

#查看帮助文档
[root@localhost script]# jstat -help
Usage: jstat -help|-options
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]] Definitions:
<option> An option reported by the -options option
<vmid> Virtual Machine Identifier. A vmid takes the following form:
<lvmid>[@<hostname>[:<port>]]
Where <lvmid> is the local vm identifier for the target
Java virtual machine, typically a process id; <hostname> is
the name of the host running the target Java virtual machine;
and <port> is the port number for the rmiregistry on the
target host. See the jvmstat documentation for a more complete
description of the Virtual Machine Identifier.
<lines> Number of samples between header lines.
<interval> Sampling interval. The following forms are allowed:
<n>["ms"|"s"]
Where <n> is an integer and the suffix specifies the units as
milliseconds("ms") or seconds("s"). The default units are "ms".
<count> Number of samples to take before terminating.
-J<flag> Pass <flag> directly to the runtime system.

option:可以通过jstat -options 查看具体有哪些java虚拟机进程的数据可以被监控,见下面的执行代码。

vmid:java虚拟机进程的id,可以通过jps -l来查看。(距离我这儿的java虚拟机进程id是3659)

lines:用来添加表头,比如你要监视类装载情况,通过 -h5,可以指定每5行输出一次表头。(jstat -class -t -h5  3659 500 20和jstat -class -t  3659 500 20各执行一次,就可以明白)

interval:采样的间隔时间,比如每500ms采样一次输出一行。(jstat -class -t -h5  3659 500 20)

count:采样的次数,比如对虚拟机类装载采样20次,每隔500ms采一次,每5行输出一次表头。(jstat -class -t -h5  3659 500 20,-class是监视类装载,-t是输出时间戳,3659是虚拟机进程id,500是每隔500ms采样,20是总共采样的次数)

[root@localhost script]# jstat -class -t -h5  3659 500 20
Timestamp Loaded Bytes Unloaded Bytes Time
2505.5 7846 13754.1 0 0.0 11.06
2506.0 7846 13754.1 0 0.0 11.06
2506.5 7846 13754.1 0 0.0 11.06
2507.0 7846 13754.1 0 0.0 11.06
2507.5 7846 13754.1 0 0.0 11.06
Timestamp Loaded Bytes Unloaded Bytes Time
2508.0 7846 13754.1 0 0.0 11.06
2508.5 7846 13754.1 0 0.0 11.06
2509.0 7846 13754.1 0 0.0 11.06
2509.5 7846 13754.1 0 0.0 11.06
2510.0 7846 13754.1 0 0.0 11.06
Timestamp Loaded Bytes Unloaded Bytes Time
2510.5 7846 13754.1 0 0.0 11.06
2511.0 7846 13754.1 0 0.0 11.06
2511.5 7846 13754.1 0 0.0 11.06
2512.0 7846 13754.1 0 0.0 11.06
2512.5 7846 13754.1 0 0.0 11.06
Timestamp Loaded Bytes Unloaded Bytes Time
2513.1 7846 13754.1 0 0.0 11.06
2513.5 7846 13754.1 0 0.0 11.06
2514.0 7846 13754.1 0 0.0 11.06
2514.6 7846 13754.1 0 0.0 11.06
2515.1 7846 13754.1 0 0.0 11.06

通过jstat -options查看,能够监视的类别有哪些

[root@localhost script]# jstat -options
-class
-compiler
-gc
-gccapacity
-gccause
-gcmetacapacity
-gcnew
-gcnewcapacity
-gcold
-gcoldcapacity
-gcutil
-printcompilation

-class

监视类装载、卸载数量、总空间及类装载所耗费时间

-compiler

输出编译器编译的方法、耗时等信息

-gc

监视堆得使用情况,包括eden、survivor、老年代、永久代

-gccapacity

与-gc基本相同,主要关注堆各个区域最大、最小空间

-gccause

与-gcutil基本相同,输出最近一次GC产生原因

-gcmetacapacity

输出元空间用到的最大、最小空间

-gcnew

新生代,参考-gc解释

-gcnewcapacity

新生代,参考-gccapacity解释

-gcold

老年代

-gcoldcapacity

老年代

-gcutil

与-gc基本相同,主要关注已使用空间占总空间的比值

-printcompilation

监视已经被编译的方法

jinfo:java配置信息工具

jinfo可以实时查看和调整虚拟机各项参数

[root@localhost script]# jinfo -help
Usage:
jinfo [option] <pid>
(to connect to running process)
jinfo [option] <executable <core>
(to connect to a core file)
jinfo [option] [server_id@]<remote server IP or hostname>
(to connect to remote debug server) where <option> is one of:
-flag <name> to print the value of the named VM flag
-flag [+|-]<name> to enable or disable the named VM flag
-flag <name>=<value> to set the named VM flag to the given value
-flags to print VM flags
-sysprops to print Java system properties
<no option> to print both of the above
-h | -help to print this help message

jinfo可以查看两种类型数据,一种是system properties(通过执行jinfo -sysprops 3659),一种是vm flags(通过执行jinfo -flags 3659),如果不指定参数,则把两种都打印出来(jinfo 3659)。查询某个vm flag,可以通过制定flag name来进行(jinfo -flag NewSize 3659,会把虚拟机参数NewSize打印出来),也支持实时修改flag参数。(3659是java虚拟机进程id)

java性能优化常用工具jps、jstat、jinfo的更多相关文章

  1. java性能优化常用工具jmap、jstack

    jmap:java内存映像工具 jmap用于生成堆转储快照,比较常用的option包括-heap,-histo,-dump [root@localhost script]# jmap -h Usage ...

  2. 【Linux】在linux上java工具jps jstat jinfo等命令找不到怎么办

    一.yum安装方式 1)搜索openjdk-devel相关的安装包 yum search java|grep jdk 2)安装对应的版本 yum install -y java-1.8.0-openj ...

  3. JAVA性能优化工具小记

    好记性不如烂笔头,戊戌年的最后一个工作日,把自己平时在开发过程中使用的一些java性能优化工具做一个简单的小结, 主要包括 jvisualvm.jfr.gdb和查看内存对象信息的几个linux命令. ...

  4. JVM——九大工具助你玩转Java性能优化

    本文转载自 http://www.importnew.com/12324.html 本文由 ImportNew - 陈 晓舜 翻译自 idrsolutions.欢迎加入翻译小组.转载请参见文章末尾的要 ...

  5. 推荐:Java性能优化系列集锦

    Java性能问题一直困扰着广大程序员,由于平台复杂性,要定位问题,找出其根源确实很难.随着10多年Java平台的改进以及新出现的多核多处理器,Java软件的性能和扩展性已经今非昔比了.现代JVM持续演 ...

  6. 【转】10种简单的Java性能优化

    10种简单的Java性能优化 2015/06/23 | 分类: 基础技术 | 14 条评论 | 标签: 性能优化 分享到: 本文由 ImportNew - 一直在路上 翻译自 jaxenter.欢迎加 ...

  7. Android 性能优化之工具和优化点总结

    Android性能优化学习 最近公司主抓性能优化工作,借此春风也学习到了许多Android性能优化方面的知识.由于组内队友的给力,优化的成果也是比较喜人.同时也学习和实践了不少知识,特此记录. 1.性 ...

  8. 《Java性能优化权威指南》

    <Java性能优化权威指南> 基本信息 原书名:Java performance 原出版社: Addison-Wesley Professional 作者: (美)Charlie Hunt ...

  9. Java 性能优化的五大技巧

    要对你的 Java 代码进行优化,需要理解 Java 不同要素之间的相互作用,以及它是如何与其运行时的操作系统进行交互的.使用下面这五个技巧和资源,开始学习如何分析和优化你的代码吧. 在我们开始之前, ...

随机推荐

  1. PHP的加密伪随机数生成器的使用

    今天我们来介绍的是 PHP 中的加密伪随机数生成器(CSPRNG 扩展).随机数的生成其实非常简单,使用 rand() 或者 mt_rand() 函数就可以了,但是我们今天说的这个则是使用了更复杂算法 ...

  2. YOLO v3 & Pascal VOC数据集

    代码地址:https://github.com/YunYang1994/tensorflow-yolov3 https://hackernoon.com/understanding-yolo-f5a7 ...

  3. jenkins的目录介绍

    jenkins的目录介绍: /etc/init.d/jenkins                #jenkins的启动文件 /etc/logrotate.d/jenkins /etc/sysconf ...

  4. 接口测试-Mock测试方法

    接口测试-Mock测试方法一.关于Mock测试1.什么是Mock测试?Mock 测试就是在测试过程中,对于某些不容易构造(如 HttpServletRequest 必须在Servlet 容器中才能构造 ...

  5. JS获取contextPath的方法

    function getContextPath() { var pathName = document.location.pathname;    var index = pathName.subst ...

  6. 面试必问:Java 垃圾回收机制

    摘要:垃圾回收机制是守护线程的最佳示例,因为它始终在后台运行. 本文分享自华为云社区<一文带你了解Java 中的垃圾回收机制>,作者:海拥. 介绍 在 C/C++ 中,程序员负责对象的创建 ...

  7. Linux Bash命令杂记(tr col join paste expand)

    Linux Bash命令杂记(tr col join paste expand) tr命令 tr命令可以将输入的数据中的某些字符做替换或者是作删除 tr [-ds] STR d: 删除输入数据的中的S ...

  8. Ubuntu20.04安装 maven并配置阿里源

    Ubuntu20.04安装 maven并配置阿里源 sudo apt update sudo apt install maven #安装maven,默认安装路径为/usr/share/maven 添加 ...

  9. Cartography Tools(制图工具)

    制图工具 1.制图优化 # Process: 分散标记 arcpy.DisperseMarkers_cartography("", "", "EXPA ...

  10. 蝉知CMS 7.X XSS漏洞复现

    个人博客地址:xzajyjs.cn 作为一个开源的企业门户系统(EPS), 企业可以非常方便地搭建一个专业的企业营销网站,进行宣传,开展业务,服务客户.蝉知系统内置了文章.产品.论坛.评论.会员.博客 ...