查看jvm启动参数 是dev 还是pro

查看jvm启动参数 是dev 还是pro,第1张

请确保java_home/bin配置到path环境变量下,慧局因为这些工具都在jdk的bin目察碧圆录下

jps(JVM Process Status Tool):JVM机进程状况工具

用来查看基于HotSpot JVM里面所有进程的具体状态, 包括进程ID,进程启动的路径等等。与unix上的ps类似,用来显示本地有权限的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。使用jps时,不需要传递进程号做为参数

Jps也可以显示远程系统上的JAVA进程,这败塌需要远程服务上开启了jstat服务,以及RMI注及服务,不过常用都是对本对的JAVA进程的查看。

命令格式:jps [ options ] [ hostid ]

常用参数说明:

-m 输出传递给main方法的参数,如果是内嵌的JVM则输出为null。

-l 输出应用程序主类的完整包名,或者是应用程序JAR文件的完整路径。

-v 输出传给JVM的参数。

例如:

C:\Users\Administrator>jps -lmv

1796 -Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx512m -XX:MaxPermSize=256m

7340 sun.tools.jps.Jps -lmv -Denv.class.path=.D:\DevTools\VM\jdk1.6.0_31\\lib\dt.jarD:\DevTools\VM\jdk1.6.0_31\\lib\tools.jar-Dapplication.home=D:\DevTools\VM\jdk1.6.0_31 -Xms8m

其中pid为1796的是我的eclipse进程,pid为7340的是jps命令本身的进程

jinfo(Configuration Info for Java):JVM配置信息工具

可以输出并修改运行时的java 进程的opts。用处比较简单,用于输出JAVA系统参数及命令行参数

命令格式:jinfo [ options ] [ pid ]

1)JVM内存分配有如下一些参数:

一般 -Xms 和 -Xmx 设置一样的大小,-XX:MetaspaceSize 和 -XX:MaxMetaspaceSize 设置一样的大小。-Xms 等价于 -XX:InitialHeapSize,-Xmx等价于-XX:MaxHeapSize;-Xmn等价于-XX:MaxNewSize。

2)在IDEA中可以按照如下方式设置JVM参数:

3)命令行启动时可以按照如下格式设置:

1)设置GC参数:

可以在启动时加上如下参数来查看GC日志:

例如,我在IDEA中添加了如下JVM启动参数:

启动程序之后打印郑宽出了如下的一些日志:

从第三行 CommandLine flags 可以得到如下的信息:

2)查看默认参数:

如果要查看JVM的默认参数,就可以通过给JVM加打印GC日志的参数,就可以在GC日志中看到JVM的默认参数了。

还可以在启动参数中添加 -XX:+PrintFlagsFinal 参数,将会打印系统的所橡中有参数,就可以看到自己配置的参数或系统的默认参数了:

3)GC日志:

之后的日志就是每次垃圾回收时产生的日志,每行日志说明了这次GC的执行情况,例如第四行GC日志:

详细内容如下:

2020-09-25T13:00:41.631+0800:GC发生的时间点。

4.013:系统运行多久之后发生的GC,单位秒,这里就是系统运行 4.013 秒后发生了一次GC。

GC (Allocation Failure):说明了触发GC的原因,这里是指对象分配失败导致的GC。

PSYoungGen:指触发的是年轻代的垃圾回收,使用的是 Parallel Scavenge 垃圾回收器。

419840K->20541K:对年轻代执行了一次GC,GC之前年轻代使用了 419840K,GC之后有 20541K 的对象活下来了。

(472064K):年轻代可用空间是 472064K,即 461 M,为什么是461M呢?因为新生代大小为 512M,Eden 区占 409.6M,两块 Survivor 区各占 51.2M,所以年轻代的可用空间为 Eden+1个Survivor的大小,即460.8M,约为461M。

419840K->20573K:GC前整个堆内存使用了 419840K,GC之后堆内存使用了 20573K。

(996352K):整个堆的大小是 996352K,即 973M,其实就是年轻代的 461M + 老年代的 512 M

0.0118345 secs:本次GC耗费的时间

Times: user=0.00 sys=0.00, real=0.01 secs:本次GC耗费的时间

4)JVM退出时的喊如亮GC情况:

程序结束运行后,还会打印一些日志,就是第12行之后的日志,这部分展示的是当前堆内存的使用情况:

详细内容如下:

在LINUX上可以使用kill -3 pid >陆清唯 thread.info来取得当前JVM线程的信息

jstack 这个是用来查看jvm当前的thread dump的正携。可以看到当前Jvm里面的线程状况。

这个对于查早培找blocked线程比较有意义


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12211619.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存