JVM:如何查看并设置jvm参数+jinfo+查看详细的jvm参数java-XX
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相关推荐
- 【开发环境】010 Editor 工具 ( 工具下载 | 二进制文件分析模板模板安装 | 快捷键查看与设置 )
文章目录 一.010 Editor 工具下载 二.010 Editor 安装二进制文件分析模板 三.010 Editor 快捷键查看与设置 一.010 Editor 工具下载 下载地址 : https ...
- linux设置软件的路径,linux下查看和设置软件的安装路径
1:你可以通过whereis 软件名来查找系统里的文件位置 比如你想查找eclipse文件,那么就: [root@localhost ~]# whereis eclipse 会显示: eclipse: ...
- JVM 调优实战--JVM的运行参数及jinfo查看运行参数信息
为什么要进行JVM优化? 本篇博文基于jdk1.8来讲解. JVM的参数 标准参数比较稳定,基本上各个不同的jdk版本都会支持. -X参数是非标参数,各个版本不同,可能用着用着就没了. -XX参数也属 ...
- JVM参数查看与设置
1JVM内存管理的机制 1.1堆(Heap)和非堆(Non-heap)内存 按照官方的说法:"Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Ja ...
- 查看自己设置的jvm参数
一行命令获取当前JVM所有可设置的参数以及当前默认值 java -XX:+PrintFlagsInitial >>1.txt 或者 执行 linux shell : ps -ef | g ...
- 查看java运行时参数_查看JVM运行时参数
1.查看JVM运行时参数 -XX:+PrintFlagsInitial -XX:PrintFlagsFinal -XX:+UnlockExperimentalVMOptions 解锁实验参数 -XX: ...
- jvm内存配置参数_性能测试连载 (23)jvm内存参数设置
概述 java内存溢出之后,我们需要根据错误信息分析一下内存溢出的具体原因,及时调整中间件的参数. 查看jvm内存分配 linux下可以通过jmap -heap [pid]命令查看jvm的内存分配 例 ...
- java -XX:+PrintFlagsInitial该命令可以查看所有JVM参数启动的初始值
java -XX:+PrintFlagsInitial 该命令可以查看所有JVM参数启动的初始值 [Global flags]intx ActiveProcessorCount = -1 {produ ...
- jvm默认的初始化参数_您是否应该信任JVM中的默认设置?
jvm默认的初始化参数 如今,JVM被认为是智能的. 预期配置不多-只需设置要在启动脚本中使用的最大堆,您就可以进行了. 所有其他默认设置都很好. 大概我们当中有些人误以为. 实际上,在运行时期间发生 ...
最新文章
- 2022-2028年中国绝缘栅双极晶体管(IGBT)行业投资分析及前景预测报告
- windows环境phpstorm调试环境搭建
- 预训练图像处理Transformer
- java string isempty,java – String.isEmpty()和String.equals(“”)之间的区别
- 7th思妙想 Fun事连连,今天范式7岁啦!
- ajax后台重定向会返回什么_第三十五天JavaScript中的ajax
- ENVI支持下利用高分辨率影像城市绿地信息提取方案
- vue-cli 3.0 怎么配置 webpack.ProvidePlugin
- [linux 命令笔记] kill
- 关于VM虚拟机与主机不能互PING的一种可能的原因
- PHP使用CURL使用问题
- Hibernate一对多双向关联
- C++ HOOK实现全局键盘钩子的详细过程
- 新浪微博API使用入门:申请应用、授权、使用官方java版本SDK
- Android应用的几种开发方式
- TextView英文自动换行解决方法
- 网站被挂马实用怎么解决的办法之一
- 文章详情页面评论功能添加及实现原理
- 《GPU编程与CG语言之阳春白雪下里巴人》阅读笔记 第三章+第四章
- 详细图解3阶段事务提交及单点故障和网络脑裂问题
热门文章
- 利用MATLAB绘制各种表白心形-跳动心形
- node.js+小程序基于微信小程序的校园失物招领系统毕业设计源码072343
- Java-反射概述、操作、作用(含有代码演示)
- 办公套件Office LTSC 2021中文
- 怎么下载央视网的视频到本地?
- 知乎里怎么看个人简介_怎么写简历中的自我评价?
- 如何取消linux响铃_彻底关闭 Linux响铃的方法
- 晶圆在低温探针台中的安装方式——Cyanoacrylate粘合剂
- Win32 汇编 - 移位: SHL、SHR、SAL、SAR、ROL、ROR、RCL、RCR、SHLD、SHRD
- 界面仅允许扫码枪录入禁止手工键盘输入