文档章节

内存监控工具

今幕明
 今幕明
发布于 2014/09/09 19:07
字数 1215
阅读 574
收藏 12

DK自带VM分析工具jps,jstat,jmap,jconsole

一、概述

    SUN 的JDK中的几个工具,非常好用。秉承着有免费,不用商用的原则。以下简单介绍一下这几种工具。(注:本文章下的所有工具都存在JDK5.0以上版本的工具集里,同javac一样,不须特意安装) 。
   
    我一共找到以下四个工具:重点看看jconsole和jmap

1.jps                
.:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。                    

2.jstat                
.:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。                    
            
3.jmap                
.:打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。                    
4.jconsole                
.:一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。    

二、 使用介绍:
   
    1、jps :我想很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其 id。 jps 也是一样,它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独 占一个java虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。
    使用方法:在当前命令行下打 jps(需要JAVA_HOME,没有的话,到改程序的目录下打) 。

可惜没有linux下的ps好用,名称不好用。但是在第四个工具jconsole的界面里面会有具体JAR包的名称。

/data/jdk1.6.0_06/bin/jps    
6360 Resin
6322 WatchdogManager
2466 Jps


      
    2、jstat :对VM内存使用量进行监控。
    jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。以下详细介绍各个参数的意义。
    jstat -class pid:显示加载class的数量,及所占空间等信息。
    jstat -compiler pid:显示VM实时编译的数量等信息。
    jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。
    jstat -gccapacity:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使 用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可以根据这个类推, OC是old内纯的占用量。
    jstat -gcnew pid:new对象的信息。
    jstat -gcnewcapacity pid:new对象的信息及其占用量。
    jstat -gcold pid:old对象的信息。
    jstat -gcoldcapacity pid:old对象的信息及其占用量。
    jstat -gcpermcapacity pid: perm对象的信息及其占用量。
    jstat -util pid:统计gc信息统计。
    jstat -printcompilation pid:当前VM执行的信息。
    除了以上一个参数外,还可以同时加上 两个数字,如:jstat -printcompilation 3024 250 6是每250毫秒打印一次,一共打印6次,还可以加上-h3每三行显示一下标题。
   
   3、jmap 是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用 SHELL jmap -histo pid>a.log可以将其保存到文本中去(windows下也可以使用),在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -dump:format=b,file=f1 3024可以将3024进程的内存heap输出出来到f1文件里。
   
    4、jconsole 是一个用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。由于是GUI程序,这里就不详细介绍了,不会的地方可以参考SUN的官方文档。
    使用方法:命令行里打 jconsole,选则进程就可以了。
   
    友好提示:windows查看进程号,由于任务管理器默认的情况下是不显示进程id号的,所以可以通过如下方法加上。ctrl+alt+del打开任务管 理器,选择‘进程’选项卡,点‘查看’->''选择列''->加上''PID'',就可以了。当然还有其他很好的选项。

实例:

jmap -histo:live $pid
jmap -histo $pid
jstack -l $pid


本文转载自:http://blog.csdn.net/linghunhong/article/details/6438442

下一篇: jVM内存监控
今幕明
粉丝 47
博文 230
码字总数 39350
作品 0
朝阳
程序员
私信 提问
Linux性能监控工具收集(转)

一、基于命令行的性能监控工具 1.dstat - 多类型资源统计工具 该命令整合了vmstat,iostat和ifstat三种命令。同时增加了新的特性和功能可以让你能及时看到各种的资源使用情况,从而能够使你对...

easonjim
2017/12/24
0
0
内存泄露从入门到精通三部曲之排查方法篇

腾讯Bugly特约作者: 姚潮生 最原始的内存泄露测试 重复多次操作关键的可疑的路径,从内存监控工具中观察内存曲线,是否存在不断上升的趋势且不会在程序返回时明显回落。 这种方式可以发现最...

腾讯Bugly
2015/11/26
1K
4
内存泄露从入门到精通三部曲之排查方法篇

腾讯Bugly特约作者: 姚潮生 最原始的内存泄露测试 重复多次操作关键的可疑的路径,从内存监控工具中观察内存曲线,是否存在不断上升的趋势且不会在程序返回时明显回落。 这种方式可以发现最...

腾讯Bugly
2015/11/26
122
0
linux监控平台搭建-监控项

本人运维某生态互联网监控平台服务。过程中遇见了很多问题。目前互联网有很多的开源监控工具:nagios、zabbix、falcon、cacti...各有优点。这里不讲解监控工具的优缺点。写一些新搭建监控平台...

donkey910614
2017/02/25
0
0
UAVStack功能上新:新增JVM监控分析工具

UAVStack推出的JVM监控分析工具提供基于页面的展现方式,以图形化的方式展示采集到的监控数据;同时提供JVM基本参数获取、内存dump、线程分析、内存分配采样和热点方法分析等功能。 引言 作为...

宜信技术学院
10/15
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

Shell学习成果之一键自动安装Mysql8.0

实验环境 系统:CentOS7.7.1908 MySql:mysql-8.0.18-el7-x86_64.tar.gz 一键安装脚本如下(可直接复制粘贴为shell脚本,与MySQL安装包放到同一目录;如果没有下载安装包就取消第26行的注释会...

网络小虾米
32分钟前
4
0
X-MSG-IM-系统依赖的第三方library编译

X-MSG-IM系统核心网元编译时依赖较多第三方库, 较为繁琐. 这是为了在部署时更方便, 更少地依赖宿主系统环境. 除非你知道自己在做什么, 否则不要变更这些库的版本. zlib-1.2.11编译 wget htt...

x-msg-im
今天
6
0
电磁兼容谐波电流测试怎么做?看完这篇文章90%的人都能明白

在正式学习谐波电流测试之前,先给大家分享一个故事: 1807年时年39岁的法国数学家傅里叶于法国科学学会上展示了一篇论文"热的传播"(Mémoire sur la propagation de la chaleur),论文中有个...

demyar
今天
3
0
数据管理必看!Kendo UI for jQuery过滤器的全球化

Kendo UI for jQuery最新试用版下载 Kendo UI目前最新提供Kendo UI for jQuery、Kendo UI for Angular、Kendo UI Support for React和Kendo UI Support for Vue四个控件。Kendo UI for jQue......

FILA6666
今天
4
0
ES6基础入门之let、const

作者 | Jeskson 来源 | 达达前端小酒馆 01 首先呢?欢迎大家来学习ES6入门基础let,const的基础知识内容。初始ECMA Script6。 ESMAScript与JavaScript的关系: ES是JS的标准(ES是对ECMAScr...

达达前端小酒馆
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部