- 浏览: 138096 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (137)
- java (138)
- c# winform (笨方法)根据不同的样式配置 设置窗体相关控件的背景 以改变窗体风格 (1)
- Android平台下实现一个进程管理器 (1)
- 装饰模式 (1)
- 【转】介绍线性代数 (1)
- fqueue初步分析 (1)
- 千万级sql优化 (1)
- 开源项目 (1)
- js弹出遮罩层【并弹出提示信息】 (1)
- 代码高亮、源码格式、iteye代码格式的种种方法 (1)
- Drupal学习笔记(四)warning: array_key_exists(): The first argument should be either a string or an integer (1)
- 2011年Java EE生产力报告 (1)
- java(j2se)学习笔记----类注释文档编写方法? (1)
- ubuntu 添加应用程序 到快速启动 (1)
- JPA注解配置实例 (1)
- C++著名内裤 (1)
- Android笔试或者面试的几个题目 (1)
- Ajax&&GWT (1)
- IHS静默安装(转) (1)
- WIN98下运行DOTNET程序的一些问题 (1)
- 开启新的项目——基于电子邮件的知识管理系统 (1)
- 这里的BLOG服务器也太不稳定了 (1)
- MapXtreme2004代码 读取TAB表中的元素 (1)
- 终于把我的大部分BLOG复制到这里来了 (1)
- 2011NOKIA笔试题目 (1)
- Ajax实现省市二级联动(源代码) (1)
- mxgraph之保存图片 (1)
- sso单点登录 (1)
- Android开发之SurfaceView (1)
- Android开发之ListView (1)
- SQL SERVER 2008 中分页方法集锦 (1)
- 2011-12-2 (1)
- 分页组件 (1)
- Myeclipse自动加入struts 2 Core Libraries导致antlr错误 (1)
- jbpm4在tomcat6中EL错误 (1)
- c++中有关数组和指针的若干问题 (1)
- rails 上传文件和删除文件 (1)
最新评论
-
mazongfei:
就是有点乱,不过还是不错的
sso单点登录 -
xiaokang1582830:
写得这么乱,地球人是无法看得懂的...
sso单点登录 -
shenyu:
大侠,下回分解在哪里啊?
mxgraph之保存图片 -
GZQ0821:
为啥不编译后贴出来呢!
SQL SERVER 2008 中分页方法集锦 -
evil9999:
http://belives2012.blog.163.com ...
千万级sql优化
jstack -- 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。另外,jstack工具还可以附属到正在运行的java程序中,看到当时运行的java程序的java stack和native stack的信息, 如果现在运行的java程序呈现hung的状态,jstack是非常有用的。目前只有在solaris和linux的jdk版本里面才有。
jconsole – jconsole是基于<a class="channel_keylink" href="http://java.chinaitlab.com/" target="_blank"><span style="color: #0000ff;">java</span></a> management extensions (jmx)的实时图形化监测工具,这个工具利用了内建到jvm里面的jmx指令来提供实时的性能和资源的监控,包括了<a class="channel_keylink" href="http://java.chinaitlab.com/" target="_blank"><span style="color: #0000ff;">java</span></a>程序的内存使用,heap size, 线程的状态,类的分配状态和空间使用等等。
jinfo – jinfo可以从core文件里面知道崩溃的java应用程序的配置信息,目前只有在solaris和linux的jdk版本里面才有。
jmap – jmap 可以从core文件或进程中获得内存的具体匹配情况,包括heap size, perm size等等,目前只有在solaris和linux的jdk版本里面才有。
jdb – jdb 用来对core文件和正在运行的java进程进行实时地调试,里面包含了丰富的命令帮助您进行调试,它的功能和sun studio里面所带的dbx非常相似,但 jdb是专门用来针对java应用程序的。
jstat – jstat利用了jvm内建的指令对java应用程序的资源和性能进行实时的命令行的监控,包括了对heap size和垃圾回收状况的监控等等。
jps – jps是用来查看jvm里面所有进程的具体状态, 包括进程id,进程启动的路径等等。
<span style="color: #0010ff;">jstatd</span><br>启动jvm监控服务。它是一个基于rmi的应用,向远程机器提供本机jvm应用程序的信息。默认端口1099。<br>实例:jstatd -j-djava.security.policy=my.policy<br><br>my.policy文件需要自己建立,内如如下:<br>grant codebase "file:$java_home/lib/tools.jar" {<br> permission java.security.allpermission;<br>};<br>这是安全策略文件,因为jdk对jvm做了jaas的安全检测,所以我们必须设置一些策略,使得jstatd被允许作网络操作
上面的操作没有通过,出现:
<span style="color: #ff0000;">could not create remote object<br>access denied (java.util.propertypermission java.rmi.server.ignoresubclasses write)<br>java.security.accesscontrolexception: access denied (java.util.propertypermission java.rmi.server.ignoresubclasses write)<br> at java.security.accesscontrolcontext.checkpermission(accesscontrolcontext.java:323)<br> at java.security.accesscontroller.checkpermission(accesscontroller.java:546)<br> at java.lang.securitymanager.checkpermission(securitymanager.java:532)<br> at java.lang.system.setproperty(system.java:727)<br> at sun.tools.jstatd.jstatd.main(jstatd.java:122)</span>
create in your usr/java/bin the jstatd.all.policy file, with the content must be
<pre><ol class="dp-xml"><li class="alt"><span><span>grant codebase "file:${java.home}/../lib/tools.jar" { </span></span></li><span>permission java.security.allpermission; </span> <li class="alt"><span>}; </span></li></ol></pre><br><span style="color: #0010ff;">jps</span><br>列出所有的jvm实例<br>实例:<br>jps<br>列出本机所有的jvm实例<br><br>jps 192.168.0.77<br>列出远程服务器192.168.0.77机器所有的jvm实例,采用rmi协议,默认连接端口为1099<br>(前提是远程服务器提供jstatd服务)<br><br>输出内容如下:<br>jones@jones:~/data/ebook/java/j2se/jdk_gc$ jps<br>6286 jps<br>6174 jstat<br><br><span style="color: #0010ff;">jconsole</span><br>一个图形化界面,可以观察到java进程的gc,class,内存等信息。虽然比较直观,但是个人还是比较倾向于使用jstat命令(在最后一部分会对jstat作详细的介绍)。<br><br><span style="color: #0010ff;">jinfo</span>(linux下特有)<br>观察运行中的java程序的运行环境参数:参数包括java system属性和jvm命令行参数<br>实例:jinfo 2083<br>其中2083就是java进程id号,可以用jps得到这个id号。<br>输出内容太多了,不在这里一一列举,大家可以自己尝试这个命令。<br><br><span style="color: #0010ff;">jstack</span>(linux下特有)<br>可以观察到jvm中当前所有线程的运行情况和线程当前状态<br>jstack 2083<br>输出内容如下:<br><img src="http://www.517sou.net/attach/month_1001/lmfqgl_085350_1.png" alt="" width="432" height="180"><br><br><span style="color: #0010ff;">jmap</span>(linux下特有,也是很常用的一个命令)<br>观察运行中的jvm物理内存的占用情况。<br>参数如下:<br>-heap:打印jvm heap的情况<br>-histo:打印jvm heap的直方图。其输出信息包括类名,对象数量,对象占用大小。<br>-histo:live :同上,但是只答应存活对象的情况<br>-permstat:打印permanent generation heap情况<br><br>命令使用:<br>jmap -heap 2083<br>可以观察到new generation(eden space,from space,to space),tenured generation,perm generation的内存使用情况<br>输出内容:<br><img src="http://www.517sou.net/attach/month_1001/5rlawx_085353_2.png" alt="" width="248" height="230"><br><br>jmap -histo 2083 | jmap -histo:live 2083<br>可以观察heap中所有对象的情况(heap中所有生存的对象的情况)。包括对象数量和所占空间大小。<br>输出内容:<br><img src="http://www.517sou.net/attach/month_1001/z9zlmt_085354_3.png" alt="" width="436" height="286"><br>写个脚本,可以很快把占用heap最大的对象找出来,对付内存泄漏特别有效。<br><br><span style="color: #0010ff;">jstat</span><br>最后要重点介绍下这个命令。<br>这是jdk命令中比较重要,也是相当实用的一个命令,可以观察到classloader,compiler,gc相关信息<br>具体参数如下:<br>-class:统计class loader行为信息<br>-compile:统计编译行为信息<br>-gc:统计jdk gc时heap信息<br>-gccapacity:统计不同的generations(不知道怎么翻译好,包括新生区,老年区,permanent区)相应的heap容量情况<br>-gccause:统计gc的情况,(同-gcutil)和引起gc的事件<br>-gcnew:统计gc时,新生代的情况<br>-gcnewcapacity:统计gc时,新生代heap容量<br>-gcold:统计gc时,老年区的情况<br>-gcoldcapacity:统计gc时,老年区heap容量<br>-gcpermcapacity:统计gc时,permanent区heap容量<br>-gcutil:统计gc时,heap情况<br>-printcompilation:不知道干什么的,一直没用过。<br><br>一般比较常用的几个参数是:<br>jstat -class 2083 1000 10 (每隔1秒监控一次,一共做10次)<br>输出内容含义如下:
<table style="width: 500px; height: 144px;" border="1" cellspacing="2" cellpadding="2" align="left"><tbody><tr><td>loaded</td><td>number of classes loaded.</td></tr><tr><td>bytes</td><td>number of kbytes loaded.</td></tr><tr><td>unloaded</td><td>number of classes unloaded.</td></tr><tr><td>bytes</td><td>number of kbytes unloaded.</td></tr><tr><td>time</td><td>time spent performing class load and unload operations.</td></tr></tbody></table><br><br><br><br><br><br><br><br>jstat -gc 2083 2000 20(每隔2秒监控一次,共做10)<br>输出内容含义如下:
<table style="width: 500px; height: 144px;" border="1" cellspacing="2" cellpadding="2" align="left"><tbody><tr><td>s0c</td><td>current survivor space 0 capacity (kb).</td></tr><tr><td>ec</td><td>current eden space capacity (kb).</td></tr><tr><td>eu</td><td>eden space utilization (kb).</td></tr><tr><td>oc</td><td>current old space capacity (kb).</td></tr><tr><td>ou</td><td>old space utilization (kb).</td></tr><tr><td>pc</td><td>current permanent space capacity (kb).</td></tr><tr><td>pu</td><td>permanent space utilization (kb).</td></tr><tr><td>ygc</td><td>number of young generation gc events.</td></tr><tr><td>ygct</td><td>young generation garbage collection time.</td></tr><tr><td>fgc</td><td>number of full gc events.</td></tr><tr><td>fgct</td><td>full garbage collection time.</td></tr><tr><td>gct</td><td>total garbage collection time.</td></tr></tbody></table><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>输出内容:<br><img class="magplus" title="点击查看原始大小图片" src="http://www.517sou.net/attach/month_1001/spyqva_085355_4.png" alt="" width="700" height="145"><br>
<h3> <span class="link_title"><a title="jvm监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat " href="http://blog.csdn.net/kelly859/article/details/5827365">jvm监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat </a></span> </h3>
jconsole – jconsole是基于<a class="channel_keylink" href="http://java.chinaitlab.com/" target="_blank"><span style="color: #0000ff;">java</span></a> management extensions (jmx)的实时图形化监测工具,这个工具利用了内建到jvm里面的jmx指令来提供实时的性能和资源的监控,包括了<a class="channel_keylink" href="http://java.chinaitlab.com/" target="_blank"><span style="color: #0000ff;">java</span></a>程序的内存使用,heap size, 线程的状态,类的分配状态和空间使用等等。
jinfo – jinfo可以从core文件里面知道崩溃的java应用程序的配置信息,目前只有在solaris和linux的jdk版本里面才有。
jmap – jmap 可以从core文件或进程中获得内存的具体匹配情况,包括heap size, perm size等等,目前只有在solaris和linux的jdk版本里面才有。
jdb – jdb 用来对core文件和正在运行的java进程进行实时地调试,里面包含了丰富的命令帮助您进行调试,它的功能和sun studio里面所带的dbx非常相似,但 jdb是专门用来针对java应用程序的。
jstat – jstat利用了jvm内建的指令对java应用程序的资源和性能进行实时的命令行的监控,包括了对heap size和垃圾回收状况的监控等等。
jps – jps是用来查看jvm里面所有进程的具体状态, 包括进程id,进程启动的路径等等。
<span style="color: #0010ff;">jstatd</span><br>启动jvm监控服务。它是一个基于rmi的应用,向远程机器提供本机jvm应用程序的信息。默认端口1099。<br>实例:jstatd -j-djava.security.policy=my.policy<br><br>my.policy文件需要自己建立,内如如下:<br>grant codebase "file:$java_home/lib/tools.jar" {<br> permission java.security.allpermission;<br>};<br>这是安全策略文件,因为jdk对jvm做了jaas的安全检测,所以我们必须设置一些策略,使得jstatd被允许作网络操作
上面的操作没有通过,出现:
<span style="color: #ff0000;">could not create remote object<br>access denied (java.util.propertypermission java.rmi.server.ignoresubclasses write)<br>java.security.accesscontrolexception: access denied (java.util.propertypermission java.rmi.server.ignoresubclasses write)<br> at java.security.accesscontrolcontext.checkpermission(accesscontrolcontext.java:323)<br> at java.security.accesscontroller.checkpermission(accesscontroller.java:546)<br> at java.lang.securitymanager.checkpermission(securitymanager.java:532)<br> at java.lang.system.setproperty(system.java:727)<br> at sun.tools.jstatd.jstatd.main(jstatd.java:122)</span>
create in your usr/java/bin the jstatd.all.policy file, with the content must be
<pre><ol class="dp-xml"><li class="alt"><span><span>grant codebase "file:${java.home}/../lib/tools.jar" { </span></span></li>
<table style="width: 500px; height: 144px;" border="1" cellspacing="2" cellpadding="2" align="left"><tbody><tr><td>loaded</td><td>number of classes loaded.</td></tr><tr><td>bytes</td><td>number of kbytes loaded.</td></tr><tr><td>unloaded</td><td>number of classes unloaded.</td></tr><tr><td>bytes</td><td>number of kbytes unloaded.</td></tr><tr><td>time</td><td>time spent performing class load and unload operations.</td></tr></tbody></table><br><br><br><br><br><br><br><br>jstat -gc 2083 2000 20(每隔2秒监控一次,共做10)<br>输出内容含义如下:
<table style="width: 500px; height: 144px;" border="1" cellspacing="2" cellpadding="2" align="left"><tbody><tr><td>s0c</td><td>current survivor space 0 capacity (kb).</td></tr><tr><td>ec</td><td>current eden space capacity (kb).</td></tr><tr><td>eu</td><td>eden space utilization (kb).</td></tr><tr><td>oc</td><td>current old space capacity (kb).</td></tr><tr><td>ou</td><td>old space utilization (kb).</td></tr><tr><td>pc</td><td>current permanent space capacity (kb).</td></tr><tr><td>pu</td><td>permanent space utilization (kb).</td></tr><tr><td>ygc</td><td>number of young generation gc events.</td></tr><tr><td>ygct</td><td>young generation garbage collection time.</td></tr><tr><td>fgc</td><td>number of full gc events.</td></tr><tr><td>fgct</td><td>full garbage collection time.</td></tr><tr><td>gct</td><td>total garbage collection time.</td></tr></tbody></table><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>输出内容:<br><img class="magplus" title="点击查看原始大小图片" src="http://www.517sou.net/attach/month_1001/spyqva_085355_4.png" alt="" width="700" height="145"><br>
<h3> <span class="link_title"><a title="jvm监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat " href="http://blog.csdn.net/kelly859/article/details/5827365">jvm监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat </a></span> </h3>
发表评论
-
rails 上传文件和删除文件
2012-02-07 14:33 1121文件上传,页面代码: <%form_tag '/ ... -
c++中有关数组和指针的若干问题
2012-02-07 14:13 822<pre class="reply-t ... -
jbpm4在tomcat6中EL错误
2012-02-04 14:03 1089? jbpm4 在tomcat6 下面ssh2 这个错 ... -
Myeclipse自动加入struts 2 Core Libraries导致antlr错误
2012-02-04 13:29 995解决方法: 选择windows---preferenc ... -
分页组件
2012-02-03 12:23 927撒地方阿斯顿的撒啊受到爱上 ... -
2011-12-2
2012-02-02 15:34 752ubuntu系统root默认密码,每次开机会随机产生默 ... -
SQL SERVER 2008 中分页方法集锦
2012-02-01 09:34 1406<span style="font-s ... -
Android开发之ListView
2012-01-31 13:53 1271<p><br></p&g ... -
Android开发之SurfaceView
2012-01-11 15:34 1262<h1>Android开发 ... -
sso单点登录
2012-01-11 12:44 3961SSO单点登录 目 ... -
mxgraph之保存图片
2011-12-28 18:38 24501、写在前端:任何情况下,保存图片不可能只通过前台代码 ... -
Ajax实现省市二级联动(源代码)
2011-12-28 16:23 5021<span style="font-f ... -
2011NOKIA笔试题目
2011-12-21 09:29 1078今天去NOKIA机试,纯粹打酱油,没什么准备,题目貌似 ... -
终于把我的大部分BLOG复制到这里来了
2011-12-16 16:22 1041本来我的BLOG都在博客中国的<img src= ... -
MapXtreme2004代码 读取TAB表中的元素
2011-12-15 12:14 957<?xml:namespace prefix = ... -
这里的BLOG服务器也太不稳定了
2011-12-14 20:53 699<p class="MsoPlainT ... -
开启新的项目——基于电子邮件的知识管理系统
2011-12-14 19:59 944</span></font>& ... -
WIN98下运行DOTNET程序的一些问题
2011-12-14 17:24 814</span></font>& ... -
IHS静默安装(转)
2011-12-13 11:59 1336<span style="col ... -
Ajax&&GWT
2011-12-13 10:14 680工作的久了,一直忙于公司相关的技术和业务上,对于如今流 ...
相关推荐
本文将介绍五种JVM监控工具:jstack、jconsole、jinfo、jmap和jdb。 jstack jstack是一款命令行工具,用于生成Java应用程序的崩溃dump文件的信息。该工具可以attach到正在运行的Java应用程序中,查看当前运行的...
本文将深入探讨六种关键的JVM监控工具——`jstack`, `jconsole`, `jinfo`, `jmap`, `jdb`, `jstat`——它们各自的功能、应用场景及如何帮助开发者和运维人员诊断并解决JVM中的复杂问题。 #### 1. jstack —— Java ...
本篇将重点介绍几种常用的JVM监控工具,包括jstack、jconsole、jinfo、jmap以及jdb和jstat。 首先,`jstack`是一个用于打印Java线程堆栈跟踪的工具。当应用出现死锁或者线程阻塞时,jstack可以帮助我们查看各个线程...
为了有效地监控和调试Java应用程序,Oracle JDK提供了多种强大的命令行工具,如jconsole、jmap、jstat等。下面将详细解释这些工具的功能和使用场景。 1. **jstack**: jstack是一种用于生成Java线程堆栈跟踪的工具...
以下是几种常用的JVM监控工具的详细介绍: 1. **jstack**: `jstack` 是一个用于打印Java线程堆栈跟踪的工具,它可以帮助我们了解应用程序中线程的状态,比如是否发生死锁或者线程阻塞。通过指定进程ID,我们可以...
本文将详细介绍JVM自带的一些核心监控工具,包括jstack、jconsole、jinfo、jmap、jdb和jstat等命令的使用方法。 #### jstack **概述:** jstack是一个强大的诊断工具,主要用于获取JVM中的线程快照。当Java程序...
"Java内存泄露_JVM监控工具介绍" Java内存泄露是Java开发中常见的一种问题,发生内存泄露可能会导致Java应用程序崩溃或性能下降。在Java中,内存泄露的原因非常多样,例如,静态变量、循环引用、数据库连接池、...
3. **性能监控**:`jstat`用于监控JVM的运行时统计信息,`jmap`获取堆内存详细信息或生成堆转储文件,`jhat`分析堆转储文件,`jconsole`和`jvisualvm`提供图形界面进行性能监控和诊断。 4. **JVM诊断**:`jinfo`...
- **jinfo**:查询和更改JVM配置选项的工具。 - **jmap**:生成堆转储快照并分析堆内存使用情况的工具。 - **jps**:列出正在运行的所有Java应用程序的进程ID。 - **jrunscript**:执行JavaScript脚本文件。 - **...
- **功能**:jconsole 是一个基于 JMX(Java Management Extensions)技术的图形化监控工具,能够实时显示 JVM 的内存使用情况、垃圾回收状态等信息。 - **使用场景**:适用于需要实时监控 Java 应用程序资源使用...
2. **jconsole**:这是一个基于Java Management Extensions (JMX) 的实时图形化监控工具,它可以提供关于Java程序内存使用、堆大小、线程状态、类分配等信息的实时监控。尽管配置较为复杂,但它提供了强大的可视化...
7. **jconsole** 和 **jvisualvm**:JVM 监视和管理工具 这两个图形界面工具可以帮助开发者监视和分析 Java 进程的内存、CPU 使用率、线程状态等。它们通常随 JDK 一起安装。 8. **jmap** 和 **jhat**:内存映射和...
- 使用`jinfo`, `jmap`, `jstat`, `jstack`等工具进行实时监控和诊断。 总的来说,OpenJDK 11提供了许多增强功能和性能优化,是现代Java开发的重要基础。了解并掌握其特性和使用方法,对于任何Java开发者来说都是至...
- **jstat**: 监控JVM的各种性能数据。 **2. JDK 1.8的新特性** - **Lambda表达式**: 允许以更简洁的方式处理函数接口,提高了代码的可读性和简洁性。 - **Stream API**: 提供了一种处理集合的新方法,支持并行操作...
5. **JVM监控与管理**:`jps`显示运行中的Java进程,`jstat`用于收集JVM统计信息,`jmap`帮助分析内存映射,而`jstack`则用于获取线程堆栈跟踪。这些工具对于理解和优化Java应用性能至关重要。 6. **Java内存管理**...
9. **其他实用工具**:如appletviewer、extcheck、idlj、jar、jarsigner、jarsigner.bat、java-rmi.cgi、jconsole、jdb、jhat、jinfo、jnlp、jmap、jmc、jps、jrunscript、jsadebugd、jstack、jstat、jstatd、...
11. **jstat**: 监控JVM统计信息,如垃圾收集、内存使用等。 12. **jstack**: 显示Java线程堆栈跟踪,用于排查死锁和阻塞问题。 13. **java Mission Control (JMC)**: 是Oracle提供的一款高级性能分析工具,包含了...
7. **其他工具**:如appletviewer、apt、extcheck、idlj、jarsigner、jconsole、jdb、jdwp、jhat、jinfo、jmap、jmc、jps、jrunscript、jstack、jstat、jstatd等,它们提供了各种附加功能,如性能监控、内存分析等。...
- **jps**、**jinfo**、**jstat**和**jstack**:系统监控和诊断工具,提供进程状态、配置信息、统计信息和线程堆栈跟踪。 **总结** JDK V1.8.0u172是Java 8的一个重要更新,它的API规范、新功能以及丰富的开发工具...