JVM:如何查看jvm设置的参数

查看jvm参数

我们什么都不要管,先来看一下,眼见为实

jps:查看当前java进程id,java本身就是一个进程

[root@hecs-82454 ~]# jps
30101 Jps
27046 jar
[root@hecs-82454 ~]# jinfo -flags 27046
Attaching to process ID 27046, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.201-b09
Non-default VM flags: -XX:CICompilerCount=2 -XX:InitialHeapSize=31457280 -XX:MaxHeapSize=482344960 -XX:MaxNewSize=160759808 -XX:MinHeapDeltaBytes=196608 -XX:NewSize=10485760 -XX:OldSize=20971520 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops
Command line:
[root@hecs-82454 ~]#

当然,如果你在服务器上有一个java服务在启动,那也可以根据你的服务的id来查看,两者结果是一致的

[root@hecs-82454 ~]# ps -ef |grep java
root     27046     1  0 09:48 ?        00:00:45 java -jar huaweiyun-0.0.1-SNAPSHOT.jar
root     30159 30063  0 20:24 pts/1    00:00:00 grep --color=auto java
[root@hecs-82454 ~]# jinfo -flags 27046
Attaching to process ID 27046, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.201-b09
Non-default VM flags: -XX:CICompilerCount=2 -XX:InitialHeapSize=31457280 -XX:MaxHeapSize=482344960 -XX:MaxNewSize=160759808 -XX:MinHeapDeltaBytes=196608 -XX:NewSize=10485760 -XX:OldSize=20971520 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops
Command line:
[root@hecs-82454 ~]#

jinfo

看到了上面的之后我们再来了解jinfo命令

-flags pid

打印指定JVM的参数值 ,在上面我们已经看到了

-flag pid

我就要看jvm的某一个参数,偏偏我还能记得住这个参数的名字,那就用这个

[root@hecs-82454 ~]# jps
27046 jar
30283 Jps
[root@hecs-82454 ~]# jinfo -flag MaxNewSize 27046
-XX:MaxNewSize=160759808
[root@hecs-82454 ~]#

-flag = pid

设置指定JVM参数的值

[root@hecs-82454 ~]# jinfo -flag MaxNewSize=31457280 27046
Exception in thread "main" com.sun.tools.attach.AttachOperationFailedException: flag 'MaxNewSize' cannot be changedat sun.tools.attach.LinuxVirtualMachine.execute(LinuxVirtualMachine.java:229)at sun.tools.attach.HotSpotVirtualMachine.executeCommand(HotSpotVirtualMachine.java:261)at sun.tools.attach.HotSpotVirtualMachine.setFlag(HotSpotVirtualMachine.java:234)at sun.tools.jinfo.JInfo.flag(JInfo.java:134)at sun.tools.jinfo.JInfo.main(JInfo.java:81)

报错了,为什么呢,因为虽然jinfo支持动态修改参数,但不是所有参数都支持修改,如修改最大堆内存就会异常,emmm,尝试了一下,几乎打印出来的参数好像都不可以修改,但是可以修改一些其他不太重要的参数,这个不重要的参数是怎么来的,下面讲java -XX的时候就可以看到了

[root@hecs-82454 ~]# jinfo -flag MaxHeapFreeRatio 27046
-XX:MaxHeapFreeRatio=70
[root@hecs-82454 ~]# jinfo -flag MaxHeapFreeRatio=71 27046
[root@hecs-82454 ~]# jinfo -flag MaxHeapFreeRatio 27046
-XX:MaxHeapFreeRatio=71
[root@hecs-82454 ~]#

设置JVM参数

-flag [±]name pid

开启或关闭对应名称的参数

[root@hecs-82454 ~]# jinfo -flag PrintGCTimeStamps 27046
-XX:-PrintGCTimeStamps
[root@hecs-82454 ~]# jinfo -flag -PrintGCTimeStamps 27046
[root@hecs-82454 ~]# jinfo -flag PrintGCTimeStamps 27046
-XX:-PrintGCTimeStamps
[root@hecs-82454 ~]# jinfo -flag +PrintGCTimeStamps 27046
[root@hecs-82454 ~]# jinfo -flag PrintGCTimeStamps 27046
-XX:+PrintGCTimeStamps

恕我直言,我没看出区别来,但是其中比较重要的一点是可以启动gc输出

[root@hecs-82454 ~]# jinfo   -flag +PrintGC 31440

java -XX 查看更详细的jvm参数

还有可以查看更详细参数的命令

下面这个是查看jvm设置初始值的

[root@hecs-82454 ~]# java -XX:+PrintFlagsInitial
[Global flags]intx ActiveProcessorCount                      = -1                                  {product}uintx AdaptiveSizeDecrementScaleFactor          = 4                                   {product}uintx AdaptiveSizeMajorGCDecayTimeScale         = 10                                  {product}uintx AdaptiveSizePausePolicy                   = 0                                   {product}uintx AdaptiveSizePolicyCollectionCostMargin    = 50                                  {product}uintx AdaptiveSizePolicyInitializingSteps       = 20                                  {product}uintx AdaptiveSizePolicyOutputInterval          = 0                                   {product}uintx AdaptiveSizePolicyWeight                  = 10                                  {product}uintx AdaptiveSizeThroughPutPolicy              = 0                                   {product}uintx AdaptiveTimeWeight                        = 25                                  {product}bool AdjustConcurrency                         = false                               {product}bool AggressiveHeap                            = false
。。。。。。。。等等等等,很长很长[root@hecs-82454 ~]#

比如说,我们就看到了

下面这个查看的是jvm参数的的最终值

[root@hecs-82454 ~]# java -XX:+PrintFlagsFinal

最后这个查看的是被新值覆盖了的参数

[root@hecs-82454 ~]# java -XX:+PrintCommandLineFlags

JVM:如何查看并设置jvm参数+jinfo+查看详细的jvm参数java-XX相关推荐

  1. 【开发环境】010 Editor 工具 ( 工具下载 | 二进制文件分析模板模板安装 | 快捷键查看与设置 )

    文章目录 一.010 Editor 工具下载 二.010 Editor 安装二进制文件分析模板 三.010 Editor 快捷键查看与设置 一.010 Editor 工具下载 下载地址 : https ...

  2. linux设置软件的路径,linux下查看和设置软件的安装路径

    1:你可以通过whereis 软件名来查找系统里的文件位置 比如你想查找eclipse文件,那么就: [root@localhost ~]# whereis eclipse 会显示: eclipse: ...

  3. JVM 调优实战--JVM的运行参数及jinfo查看运行参数信息

    为什么要进行JVM优化? 本篇博文基于jdk1.8来讲解. JVM的参数 标准参数比较稳定,基本上各个不同的jdk版本都会支持. -X参数是非标参数,各个版本不同,可能用着用着就没了. -XX参数也属 ...

  4. JVM参数查看与设置

    1JVM内存管理的机制 1.1堆(Heap)和非堆(Non-heap)内存 按照官方的说法:"Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Ja ...

  5. 查看自己设置的jvm参数

    一行命令获取当前JVM所有可设置的参数以及当前默认值 java -XX:+PrintFlagsInitial  >>1.txt 或者 执行 linux shell : ps -ef | g ...

  6. 查看java运行时参数_查看JVM运行时参数

    1.查看JVM运行时参数 -XX:+PrintFlagsInitial -XX:PrintFlagsFinal -XX:+UnlockExperimentalVMOptions 解锁实验参数 -XX: ...

  7. jvm内存配置参数_性能测试连载 (23)jvm内存参数设置

    概述 java内存溢出之后,我们需要根据错误信息分析一下内存溢出的具体原因,及时调整中间件的参数. 查看jvm内存分配 linux下可以通过jmap -heap [pid]命令查看jvm的内存分配 例 ...

  8. java -XX:+PrintFlagsInitial该命令可以查看所有JVM参数启动的初始值

    java -XX:+PrintFlagsInitial 该命令可以查看所有JVM参数启动的初始值 [Global flags]intx ActiveProcessorCount = -1 {produ ...

  9. jvm默认的初始化参数_您是否应该信任JVM中的默认设置?

    jvm默认的初始化参数 如今,JVM被认为是智能的. 预期配置不多-只需设置要在启动脚本中使用的最大堆,您就可以进行了. 所有其他默认设置都很好. 大概我们当中有些人误以为. 实际上,在运行时期间发生 ...

最新文章

  1. 2022-2028年中国绝缘栅双极晶体管(IGBT)行业投资分析及前景预测报告
  2. windows环境phpstorm调试环境搭建
  3. 预训练图像处理Transformer
  4. java string isempty,java – String.isEmpty()和String.equals(“”)之间的区别
  5. 7th思妙想 Fun事连连,今天范式7岁啦!
  6. ajax后台重定向会返回什么_第三十五天JavaScript中的ajax
  7. ENVI支持下利用高分辨率影像城市绿地信息提取方案
  8. vue-cli 3.0 怎么配置 webpack.ProvidePlugin
  9. [linux 命令笔记] kill
  10. 关于VM虚拟机与主机不能互PING的一种可能的原因
  11. PHP使用CURL使用问题
  12. Hibernate一对多双向关联
  13. C++ HOOK实现全局键盘钩子的详细过程
  14. 新浪微博API使用入门:申请应用、授权、使用官方java版本SDK
  15. Android应用的几种开发方式
  16. TextView英文自动换行解决方法
  17. 网站被挂马实用怎么解决的办法之一
  18. 文章详情页面评论功能添加及实现原理
  19. 《GPU编程与CG语言之阳春白雪下里巴人》阅读笔记 第三章+第四章
  20. 详细图解3阶段事务提交及单点故障和网络脑裂问题

热门文章

  1. 利用MATLAB绘制各种表白心形-跳动心形
  2. node.js+小程序基于微信小程序的校园失物招领系统毕业设计源码072343
  3. Java-反射概述、操作、作用(含有代码演示)
  4. 办公套件Office LTSC 2021中文
  5. 怎么下载央视网的视频到本地?
  6. 知乎里怎么看个人简介_怎么写简历中的自我评价?
  7. 如何取消linux响铃_彻底关闭 Linux响铃的方法
  8. 晶圆在低温探针台中的安装方式——Cyanoacrylate粘合剂
  9. Win32 汇编 - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD
  10. 界面仅允许扫码枪录入禁止手工键盘输入