JDK bin指令
jmap:
一、调用命令示例:
jmap -F-dump:format=b,file=rmsheap.bin 6086
就会在当前目录下生成rmsheap.bin的文件,6086是Pid。-F是在某些情况下连不上进程时需要加上。
二、使用:
使用mat进行分析,下载地址:http://www.eclipse.org/mat/downloads.php
可以分析内存泄露,等。还有,能看到当前类的实例个数,以证实是否有些类被占用着没有被回收:
其他的功能待发掘。

jstack:
一、调用命令示例:
jstack -F 3879 >> stack
3879是Pid,-F是连不上进程时使用。导出到stack文件。
二、使用:
Thread31548: (state = BLOCKED)
- Java.lang.Object.wait(long) @bci=0 (Interpretedframe)
- java.lang.Object.wait() @bci=2, line=485(Interpreted frame)
-org.apache.commons.pool.impl.GenericObjectPool.borrowObject() @bci=108,line=811 (Interpreted frame)
-org.apache.commons.dbcp.PoolingDataSource.getConnection() @bci=4, line=96(Interpreted frame)
-org.apache.commons.dbcp.BasicDataSource.getConnection() @bci=4, line=880(Interpreted frame)
看见这些大量阻塞状态的线程,就可以大概猜出来是哪个部件出了问题。然后,可以去google上找找,找不到就看源代码分析了。再结合其他的分析。比如说这个,猜想是取不出线程对象来了,一直在等,分析下代码,看看哪些类有在用,比如看到下面这个:
Connection conn =(Connection)_pool.borrowObject();
if(conn !=null)
conn = new PoolGuardConnectionWrapper(conn);
那么猜想如果借出去了没有换的话,是否PoolGuardConnectionWrapper这个类型的实例应该不少。那就可以从mat里面去看了。再结合数据库池观察软件进行分析。
其他的分析案例可google之。
jstat –gcutil
一、调用命令示例:
jstat-gcutil 21891 250 7
21891 进程号; 250ms 采样interval; 7 count
结果信息:
S0 — Heap上的 Survivor space 0 区已使用空间的百分比
S1 — Heap上的 Survivorspace 1 区已使用空间的百分比
E — Heap上的 Edenspace 区已使用空间的百分比
O — Heap上的 Oldspace 区已使用空间的百分比
P — Perm space 区已使用空间的百分比
YGC — 从应用程序启动到采样时发生 Young GC 的次数
YGCT– 从应用程序启动到采样时 Young GC 所用的时间(单位秒)
FGC — 从应用程序启动到采样时发生 Full GC 的次数
FGCT– 从应用程序启动到采样时 Full GC 所用的时间(单位秒)
GCT — 从应用程序启动到采样时用于垃圾回收的总时间(单位秒)
二、使用:
FGC的次数太频繁,一定要调整,尽量调低这个的次数,耗时耗性能。一般是增加此区的内存。
YGC能少就少。
其他的看比率吧?
JVisualVM:
一、调用命令示例:
直接运行-》jvisualvm
二、使用:
本地的可直接使用,如果要连远程的,需要配置JMX。
在JAVA_OPTS=里增加如下配置
-Dcom.sun.management.jmxremote.port=7028-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false
在运行了jvisualvm的机器上设置:

即可在本地进行分析了。可以看线程、dump线程快照等,可以安装额外的插件进行分析。还可以强制执行GC。
Jconsole
一、调用命令实例:
直接运行-》jvisualvm
Linux下会提示需要图形界面(如果没有的话)
二、使用:
配置JMX与jvisualvm一致。通过下面这种格式的链接进行连接:
service:jmx:rmi:///jndi/rmi://10.211.1.100:7028/jmxrmi
与jvisualvm不同的是mbean,是很多用java类的形式展示的jvm的信息。那应该编程时也可以获取得到。
Jinfo:
一、调用命令实例:
jinfo 8155
二、使用:
输入很多信息,最下面的设置参数信息-opts:,VM Flags:。
Jps:
输出java的进程用。
JDK bin指令的更多相关文章
- Process 'command 'D:\jdk8\jdk\bin\java.exe'' finished with non-zero exit value 2
转载请标明出处,维权必究:https://www.cnblogs.com/tangZH/p/10539006.html 捣鼓了好久,现在已经不想说话,为何会出现这个问题,Process 'comman ...
- JDK/bin下工具列表说明
JDK/bin下工具列表说明 appletviewer.exe:一种执行HTML文件上的Java小程序类的Java浏览器 apt.exe:注解处理工具(Annotation Processing To ...
- 往jdk/bin目录中增加tcnative-1.dll文件以后报错 Can't load AMD 64-bit .dll on a IA 32-bit platform
开始时,运行Tomcat控制台报错: The APR based Apache Tomcat Native library which allows optimal performance in pr ...
- -bash: /root/java/jdk/bin/java: cannot execute binary file
错误 -bash: /root/java/jdk/bin/java: cannot execute binary file 错误原因 安装的Linux的版本是32位的,下载的软件是64位,版本不兼容, ...
- java中jre\bin目录和jdk\bin目录下的工具功能介绍
转自:https://blog.csdn.net/eclipse_yin/article/details/51051096 jre/bin目录下面工具说明 javac:Java编译器,将Java源代码 ...
- linux jdk bin安装
1.jdk-1_5_0_06-linux-i586.bin下载到/usr/soft,赋予可执行权限:chmod 755jdk-1_5_0_06-linux-i586.bin 2.执行:./jdk-1_ ...
- JDK/bin目录下的不同exe文件的用途(转)
新安装完JDk 大家是否发现安装目录的bin文件夹有很多exe文件 下面就为大家讲解不同exe文件的用途 javac:Java编译器,将Java源代码换成字节代 java:Java解释器,直接从类文件 ...
- LR使用Java User协议环境报错Please add the <JDK>\bin to the path and try again
看标题报错信息就知道,这是java编译及运行环境配置问题,运行LR脚本时,LR代理找不到java的JDK环境,当然,可能有人会遇到说,我在cmd窗口javac 环境是没问题的呀,是的,这就要看你的jd ...
- JDK/bin目录下的不同exe文件的用途
新安装完JDk 大家是否发现安装目录的bin文件夹有很多exe文件 下面就为大家讲解不同exe文件的用途 javac:Java编译器,将Java源代码换成字节代 java:Java解释器,直接从类文件 ...
随机推荐
- New Concept English three (23)
31w 45 People become quite illogical when they try to decide what can be eaten and what cannot be ea ...
- CDN推送
一.什么是CDN推送 当后端服务器中的DNS有更新的时候,在varnish的缓存中应该及时地同步后端服务器中的内容.相当于清空varnish中的缓存,当下一次进行访问时,直接从服务器中获取新的内容. ...
- PostgreSQL逻辑复制使用记录
之前逻辑复制刚刚出来的时候就使用过,但是没有进行整理,这次一个项目需要逻辑复制的自动迁移,再次拾起逻辑复制. 在此之前有两个疑问: 1)同一个表,既有流复制,又有逻辑复制,这样数据会有两份吗? --不 ...
- cpu的用户态和内核态和内存的用户空间内核空间
谈到CPU的这两个工作状态,也就是处理器的这两个工作状态,那我们有必要说一下为什么搞出这两个鬼玩意出来. 用过电脑的娃娃们肯定知道在一个系统中既有操作系统的程序,也由普通用户的程序.但那么 ...
- BASE理论
BASE是Basiclly Available(基本可用),Soft state(软状态),Eventually consistent(最终一致性)三个短语的缩写. BASE是对CAP中一致性和可用性 ...
- HAWQ + MADlib 玩转数据挖掘之(一)——安装
一.MADlib简介 MADlib是Pivotal公司与伯克利大学合作的一个开源机器学习库,提供了精确的数据并行实现.统计和机器学习方法对结构化和非结构化数据进行分析,主要目的是扩展数据库的分析能力, ...
- ss-libev 源码解析local篇(5):ss-local之remote_send_cb
remote_send_cb这个回调函数的工作是将从客户端收取来的数据转发给ss-server.在之前阅读server_recv_cb代码时可以看到,在STAGE_STREAM阶段有几种可能都会开启r ...
- Verilog乘法器
乘法器,不能用乘号直接表示,略坑呀 坑归坑,做还是要做的 思路:首先乘法分为有符号乘与无符号乘,所以建立两个module分别运算有符号与无符号.然后在总module中用case语句判断输出应赋的值. ...
- python 生成器推导式与列表推导式的区别
生成器表达式现用现生成,列表推导式一次性生成静态数据 L = [2, 3, 5, 7] L2 = (x**2+1 for x in L) it = iter(L2) print(next(it)) L ...
- Linux 中断处理
HardIRQ 和 softirq : http://www.it165.net/os/html/201211/3766.html 博文:http://blog.csdn.net/yin262/art ...