当前位置: 首页 > 后端技术 > Java

java虚拟机工具的使用

时间:2023-04-01 20:49:35 Java

原因是生产环境下的java程序存在cpu占用1500%的性能问题,而本人对虚拟机工具的使用不是很熟悉,所以写此记录下java自带工具的使用。PID与端口的联系。pid不是端口,而是进程ID。进程号是系统分配给进程的身份标识。一旦程序运行起来,系统就会给出一个唯一的pid。当程序结束后,系统会回收pidnetstat-ano|findStrportnumber根据端口号查询虚拟机的PIDjps:查看本地java进程信息jstack:打印线程的堆栈信息,做一个threaddump文件jmap:打印内存映射信息,做一个heapdumpfilejhat:内存分析工具,用于分析heapdump文件并以人类可读的方式显示JVM可视化工具jvisualvm:更强大的JVM可视化工具javap:查看字节码jps-l'文件内容为如下首先显示的是pid,不是程序监听的端口jstackPID>filenamejmap-dump:format=b,file=filenamepidjhat-port55555文件名页面可以访问http://查看/localhost:55555/,内容如下jstat-gc文件名100010以下取值单位为KBC:容量U:使用S0:第一A新生代S1:第二新生代E:伊甸园空间O:老年代M:MetaspaceCCS:压缩空间区域YGC:YounggenerationGCFGC:CompleteGCGCT:TotalGCtimejcmdjcmdPIDhelp查询可用命令,常用命令如下分析Thread.print:打印线程堆栈信息GC.class_histogram:查看类统计系统中GC.heap_dump:导出堆信息,与jmap-dump相同GC.run_finalization:触发finalize()GC.run:触发gc()VM.uptime:启动时间VM.flags:获取JVM启动参数VM.system_properties:getsystemPropertiesjconsole选择你要监控的程序点击连接主要是memory,thread,class,cpu和Mbean监控jvisualvm选择你要监控的程序然后双击主要监控cpu、heap、class、thread等,还有采样功能,比jconsole好用