一、jps命令
1、jps命令定义
jps命令是Java Virtual Machine Process Status Tool(Java虚拟机进程状态工具)的简称,用于查看当前应用程序中的JVM进程,同时可以查看每个进程的PID(Process ID),Main Class(启动类),以及JVM参数等信息。
2、使用方式及示例
$ jps -lvm 24217 Jps -lvm 24038 Main -Xms5m -Xmx5m -Xss128k
上面的输出结果中,第一个数字表示该进程的PID,第二列是启动的类或JAR文件,第三列是相应的参数信息。
除了-lvm参数,还可以使用其他参数进行筛选,例如:
$ jps -q 24038 24217
上面的输出只会生成PID号码,没有其他的信息。
二、jcmd命令
1、jcmd命令定义
jcmd命令是Java大数据监控程序的命令工具,可以用于操作JVM的诊断命令工具。
2、使用方式及示例
显示可用的诊断命令:
$ jcmd pid help 2577: The following commands are available: VM.native_memory VM.check_commercial_features ManagementAgent.stop ManagementAgent.start_local ManagementAgent.start GC.rotate_log Thread.print GC.class_stats GC.class_histogram GC.heap_dump GC.run_finalization VM.uptime VM.flags VM.system_properties VM.command_line VM.version
打印JVM进程的启动参数和系统属性:
$ jcmd pid VM.flags 2577: -XX:InitialHeapSize=268435456 -XX:MaxHeapSize=4282384384 ...
三、jinfo命令
1、jinfo命令定义
jinfo命令是用来查询和设置JVM参数的命令,可以检查正在运行的Java进程使用了哪些参数。
2、使用方式及示例
打印JVM进程的所有参数:
$ jinfo -flags pid
设置JVM参数,例如:
$ jinfo -flag MaxHeapSize=1024m pid
四、jstat命令
1、jstat命令定义
jstat命令用于监视JVM中各种运行状态信息,例如垃圾回收、类加载等信息,可帮助诊断和优化JVM。
2、使用方式及示例
显示垃圾回收统计信息:
$ jstat -gc pid
显示类加载信息:
$ jstat -class pid
五、jconsole命令
1、jconsole命令定义
jconsole命令是Java GUI监视工具,可用于集中查看JVM性能数据、内存信息、线程状态、类加载器信息等,同时也可以进行线程和堆栈分析。
2、使用方式及示例
首先启动JConsole:
$ jconsole
连接正在运行的Java进程:
$ jconsole pid
在JConsole中,可以查看JVM参数、内存使用、线程状态、类信息等,并且还可以导出日志数据以进行进一步分析。
六、结语
本文介绍了多种查看JVM参数的方法,包括jps、jcmd、jinfo、jstat和jconsole等命令,以及相关的使用示例,希望对Java程序员们在排查问题和优化性能时有所帮助。