您的位置:首页 > 编程语言 > Java开发

java不常用但很有用的问题排查工具(持续完善)

2017-03-09 12:15 731 查看
因为用的频率不是很多,老忘掉,每次都要搜下,特记录下备忘。

查看进程的启动jvm选项

[root@iZ23nn1p4mjZ ~]# jinfo -flags 16603
Attaching to process ID 16603, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.73-b02
Non-default VM flags: -XX:CICompilerCount=3 -XX:InitialHeapSize=262144000 -XX:MaxHeapSize=4181721088 -XX:MaxNewSize=1393557504 -XX:MinHeapDeltaBytes=524288 -XX:NewSize=87031808 -XX:OldSize=175112192 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC

查看当前类实例汇总情况

[root@iZbp112kwadw1qt8emked5Z logs]# jmap -histo 21094 | more

num     #instances         #bytes  class name
----------------------------------------------
1:         61677       41842184  [B
2:         41937       38583528  [I
3:        300394       22331688  [C
4:        351629       11252128  java.util.HashMap$Node
5:        248197        5956728  java.lang.String
6:         24685        3225536  [Ljava.util.HashMap$Node;
7:         74766        2990640  java.math.BigDecimal
8:         25328        1979288  [Ljava.lang.Object;
9:         40762        1956576  java.nio.HeapByteBuffer
10:         40616        1949568  java.nio.HeapCharBuffer
11:         16747        1473736  java.lang.reflect.Method
12:         28706        1377888  java.util.HashMap
13:          8328        1199232  com.mysql.jdbc.Field
14:         17546         701840  java.math.BigInteger
15:          5746         642584  java.lang.Class
16:         34436         550976  java.lang.Integer
17:         16899         540768  java.lang.ref.WeakReference
18:          2538         534344  [Z
19:         10095         403800  java.util.TreeMap$Entry
20:          2045         359920  com.mysql.jdbc.JDBC42ResultSet
21:         11216         358912  java.util.concurrent.ConcurrentHashMap$Node


命令行运行jar应用

java -cp .;c:\classes\myClass.jar;d:\classes\A.jar;...(列出完整依赖jar) packname.mainclassname

-Xbootclasspath是早期1.2版本jdk的选项,http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4279459

-cp/classpath不支持模糊匹配

-jar 和-cp相互排斥

打印关键jvm关键调试信息

参数及其默认值描述
-XX:-CITime打印消耗在JIT编译的时间
-XX:ErrorFile=./hs_err_pid<pid>.log保存错误日志或者数据到文件中
-XX:+MaxFDLimit最大化文件描述符的数量限制
-XX:HeapDumpPath=./java_pid<pid>.hprof指定导出堆信息时的路径或文件名
-XX:-HeapDumpOnOutOfMemoryError当首次遭遇OOM时导出此时堆中相关信息
-XX:OnOutOfMemoryError="<cmd args>;<cmd args>"当首次遭遇OOM时执行自定义命令
-XX:-PrintClassHistogram遇到Ctrl-Break后打印类实例的柱状信息,
与jmap -histo功能相同
-XX:-PrintConcurrentLocks遇到Ctrl-Break后打印并发锁的相关信息,
与jstack -l功能相同
-XX:-PrintCommandLineFlags打印在命令行中出现过的标记
-XX:-PrintCompilation当一个方法被编译时打印相关信息
-XX:-PrintGC每次GC时打印相关信息
-XX:-PrintGC Details每次GC时打印详细信息
-XX:-PrintGCTimeStamps打印每次GC的时间戳
-XX:-TraceClassLoading跟踪类的加载信息
-XX:-TraceClassLoadingPreorder跟踪被引用到的所有类的加载信息
-XX:-TraceClassResolution跟踪常量池
-XX:-TraceClassUnloading跟踪类的卸载信息
-XX:-TraceLoaderConstraints跟踪类加载器约束的相关信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: