看完本文,你可以学会以下命令的常规使用【jps,jinfo,jstat,jmap,jstack,jcmd,jrunscript,jjs】jps获取当前运行的java进程,例子:jps-lmv可以打印详细信息-l输出main类或者jar的全名,-m传入main方法的参数,-v传入jvm的参数jinfo使用jinfopid查看当前进程系统属性信息和进程启动jvm参数information,jdk版本信息示例:jinfopidjstatJVM统计检测工具示例:jstat-gcpid100010(打印pid的gc信息,每秒打印一次,打印10次)jstat-gcutilpid100010(打印pid的gc百分比信息,打印一次每秒,打印10次)解释C是capacity(容量),U是utilization(利用率)S0CSurvivor0区域容量S0USurvivor0区域使用S1CSurvivor1区域容量S1Usurvivor1区域使用ECeden区域容量EUeden区域使用OColdareaCapacityOUOldareausageMCMetadataareacapacityMUMetadataareausageCCSCCompressedclassspacecapacityCCSUCompressedclassspaceusageYGC年轻代GC次数YGCT年轻代GC总时间FGCFullGC次数FGCTFullGC总时间GCT总垃圾回收时间jmap打印堆内存配置以及使用信息jmap-heappid查看哪些类占用空间最多jmap-histopiddumpfileoutputjmap-dump:format=b,file=xxxx.hprofpidjstack-fenforcethreaddump可以在进程卡住的时候使用,需要系统权限jstack-fpid-m混合输出(mixedmode)javaframe和nativeframe一起输出jstack-mpid-l输出详细信息,长列表模式,打印相关Lock信息jstack-lpidjcmd查看信息可以使用jcmdpidhelp查看当前进程参数信息//版本jcmdpidVM.version//参数jcmdpidVM.flags//启动命令jcmdpidVM.command_line//系统参数jcmdpidVM.system_properties//线程信息jcmdpidVM.Thread.print//GC占用空间jcmdpidGC.class_histogram//GC新生代,老年代,元数据区信息jcmdpidGC.heap_infojrunscript/jjsjrunscriptcurl时使用jrunscript-e"cat('http://www.baidu.com')"执行js命令jrunscript-e"print('hellozuiyu.jvm')"执行js文件jrunscript-ljs-f/xx/xx/test.jsjjs交互控制台使用image-20220109215617800Java高级扫码关注不丢微信:zuiyu17970
