虚拟机配置参数

news/2024/7/8 2:00:31
标准参数:
保证所有JVM的实现都可以支持
-client
设置Hotspot client jvm,64位jdk会忽略该参数并设置-server
-Dproperty=value
用于设置系统属性,如果value中有空格,则需要设置-Dproperty="value value"
-server
选择Hotspot Server JVM,64位jdk只支持server VM.
这个参数是隐含的,即默认设置
-verbose:class
显示加载的每个class信息
非标准参数:
一般被用于HotSpot JVM,所以他们不能保证所有的JVM实现都可用,
这些参数以-X开头
-Xloggc:garbage-collection.log
设置详细GC事件信息重定向到指定的日志记录的文件
-Xmn256m
设置初始化以及最大young区
堆中的young代区用于创建Object
GC在young代执行比其他区域频繁
如果young区被设置的很小,会导致一些小的gc频繁执行
如果young区被设置的很大,会导致只有full gc时才可以被执行回收young区,并且会消耗很长时间
Oracle建议young区设置为全部堆的一半到四分之一
可以分别设置 -XX:NewSize初始化大小以及-XX:MaxNewSize最大young区两个配置来代替-Xmn配置
-Xms6m
设置初始化堆(字节)大小,这个值必须是1024的倍数并且大于1MB
如果没有设置这个区大小,这个初始化大小将被设置为old区和young区的合计大小
-Xmx80m
指定内存分配池的最大字节数
这个值比较时1024的倍数并且大于2M
默认值会根据系统运行的配置选择
对应一些服务端应用, -Xms与-Xmx通常配置为相同大小、
-Xmx等同于-XX:MaxHeapSize
-Xnoclassgc
用于禁用GC,这可以节省一些在系统运行期间短暂暂停的时间
-Xss1024k
设置每个线程栈的大小
-Xss等同于-XX:ThreadStackSize
这个值可以根据不同操作系统自动设置大小:
Linux/ARM (32-bit): 320 KB
Linux/i386 (32-bit): 320 KB
Linux/x64 (64-bit): 1024 KB
OS X (64-bit): 1024 KB
Oracle Solaris/i386 (32-bit): 320 KB
Oracle Solaris/x64 (64-bit): 1024 KB
高级运行时参数:
不建议随便设置这些是用于调优Java HotSpot虚拟机操作的特定领域的开发人员选项,这些领域通常具有特定的系统需求,并且可能需要特权访问系统配置参数。
这类命令以-XX开头
-XX:+UseConcMarkSweepGC
为旧代启用CMS垃圾收集器。当吞吐量(-XX:+UseParallelGC)垃圾收集器无法满足应用程序延迟需求时,Oracle建议您使用CMS垃圾收集器。G1垃圾收集器(-XX:+UseG1GC)是另一种选择。
-XX:+UseG1GC
启用垃圾优先(G1)垃圾收集器。它是一个服务器风格的垃圾收集器,目标是具有大量RAM的多处理器机器。它满足GC暂停时间目标的可能性很高,同时保持良好的吞吐量。对于需要大堆(大小约6gb或更大)、GC延迟要求有限(稳定且可预测的暂停时间低于0.5秒)的应用程序,建议使用G1收集器。
-XX:+UseParallelGC
允许使用并行清除垃圾收集器(也称为吞吐量收集器)通过利用多个处理器来提高应用程序的性能。
默认情况下,禁用此选项,并且根据机器的配置和JVM类型自动选择收集器。如果启用了-XX:+UseParallelOldGC选项,则自动启用,除非显式禁用。
-XX:+UseParallelOldGC
对于Full GC,使用并行回收GC,
使用-XX:+UseParallelGC选项时会默认启用该选项
-XX:+UseParNewGC
在young区使用并行回收GC
-XX:+UseSerialGC
启用串行垃圾收集器。对于不需要垃圾收集提供任何特殊功能的小型简单应用程序,这通常是最佳选择。默认情况下,禁用此选项,并且根据机器的配置和JVM类型自动选择收集器。
-XX:ErrorFile=/var/log/java/java_error.log
指定当出现不能复现的错误时错误日志应该输出到的文件地址
默认这个文件创建在工作路径下的hs_err_pid.log中
-XX:MaxDirectMemorySize=1m
设置New I/O可以分配的最大【直接缓冲区】字节数
默认这是为0,即jvm自动选择New I/O可分配的【直接缓冲区】字节大小
-XX:ThreadStackSize=1m
指定线程栈大小
-XX:LogFile=/var/log/java/hotspot.log
设置日志地址
高级的GC选项
这些选择用于Hotspot VM
-XX:+AggressiveHeap
启用java堆优化,基于RAM和CPU的配置通过设置各种参数使其跟适合带有密集分配内存的长时间任务的分配
默认关闭的
-XX:ConcGCThreads=2
设置用于并发GC的线程数
默认为CPU数
-XX:+DisableExplicitGC
禁用堆System.gc()的处理
-XX:+ExplicitGCInvokesConcurrent
通过使用System.gc()调用并发GC,这个参数只有在-XX:+UseConcMarkSweepGC一起使用时才有效
默认关闭
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses
通过使用System.gc()调用并发GC并且在GC期间不加载class,这个参数只有在-XX:+UseConcMarkSweepGC一起使用时才有效
默认关闭
-XX:G1HeapRegionSize=16m
设置在使用垃圾优先(G1)收集器时将Java堆细分到的区域的大小
这个值在1M到32M之间
-XX:+G1PrintHeapRegions
能够打印有关分配哪些区域以及哪些区域由G1收集器回收的信息
默认关闭
-XX:G1ReservePercent=20
-XX:InitialHeapSize=6m
设置内存池分配的初始化大小
这个值必须是1024的倍数并且大于1M
-XX:InitialSurvivorRatio=ratio
设置垃圾回收器中survivor区的占比(在-XX:+UseParallelGC 或者 -XX:+UseParallelOldGC两个参数下才生效)
根据青年一代的大小(Y)和初始生存者空间比(R),可以用以下公式计算生存者空间的初始大小(S):S=Y/(R+2)
等式中的2表示两个幸存者空间。指定为初始存活空间比的值越大,初始存活空间大小越小。
默认的survivor 区占比是8
如果默认值young区为2M,则survivor区打下为0.2M
-XX:MaxGCPauseMillis=500
设置GC最大暂停时间
这是一个软目标,JVM将尽最大努力来实现它
默认没有最大的时间暂停时
单位是毫秒
-XX:MaxHeapSize=80m
设置最大的可分配内存池大小
-XX:MaxHeapSize等同于-Xmx
-XX:MaxHeapFreeRatio=percent
-XX:MaxHeapFreeRatio=75
设置一次GC事件后最大的空余堆占比,如果实际空余堆空间扩张到了这个占比,那么堆空间将进行收缩
默认设置70%
-XX:MinHeapFreeRatio=percent
设置一次GC事件后最小的空余堆占比,如果实际空余堆空间低于这个占比,那么堆空间将进行扩展
默认设置40%
-XX:MaxMetaspaceSize=size
-XX:MaxMetaspaceSize=256m
设置能够被分配给class原数据使用的最大本地内存
默认没有限制
应用程序的元数据数量取决于应用程序本身、其他正在运行的应用程序以及系统上可用的内存数量
-XX:MetaspaceSize=size
设置所分配的类元数据空间的大小,该空间将在第一次超过该空间时触发垃圾收集
根据所使用的元数据的数量,增加或减少垃圾收集的阈值。
-XX:MaxNewSize=size
设置最大的young区大小
-XX:MaxTenuringThreshold=threshold
设置用于自适应GC分级的最大拉伸阈值。最大的值是15。并行(吞吐量)收集器的默认值是15,CMS收集器的默认值是6。
-XX:NewRatio=ratio
设置young区与old区的比例
默认比例为2
-XX:NewSize=size
-XX:NewSize=256m
设置young区堆的初始化大小
堆中的young代区用于创建Object
GC在young代执行比其他区域频繁
如果young区被设置的很小,会导致一些小的gc频繁执行
如果young区被设置的很大,会导致只有full gc时才可以被执行回收young区,并且会消耗很长时间
Oracle建议young区设置为全部堆的一半到四分之一
-XX:ParallelGCThreads=threads
设置在young区与old区进行并行GC的最大线程数
-XX:+PrintGC
每次GC打印信息
-XX:+PrintGCDetails
每次GC打印详细信息
-XX:SurvivorRatio=ratio
-XX:SurvivorRatio=4
设置eden空间大小与幸存者空间大小的比值
-XX:TargetSurvivorRatio=percent
-XX:TargetSurvivorRatio=30
设置在年轻垃圾收集之后使用的存活空间的期望百分比(0到100)
摘自:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html

转载于:https://www.cnblogs.com/use-D/p/9562285.html


http://lihuaxi.xjx100.cn/news/237177.html

相关文章

网站重构?

网站重构:在不改变外部行为的前提下,简化结构、添加可读性,而在网站前端保持一致的行为。也就是说是在不改变 UI 的情况下,对网站进行优化,在扩展的同时保持一致的 UI。对于传统的网站来说重构通常是:1. 表…

分布式系统的时间顺序

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 分布式系统的时间顺序 区块链被认为是分布式的系统,分布式系统中由于多节点,通讯、物理位置等的问题,各节点间时…

helm部署仓库中没有的包_Kubernetes的Helm软件包管理器简介

helm部署仓库中没有的包Before we dive into the Helm package manager, Im going to explain some key concepts to deploying any application anywhere. Ill also give you a brief introduction to Kubernetes terminology.在深入研究Helm软件包管理器之前 ,我将…

Bootstrap4 更新笔记

在bootstrap4里&#xff0c; 1. 旧版本bootstrap well变成了什么&#xff1f; well原本是‘’淡灰墙‘’样式。 Bootstrap 4 Beta card-block is now card-body, and bg-faded is now bg-light: <div class"card card-body bg-light"> Well </div>ref&am…

如何搭建以太坊私有链

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 如何搭建以太坊私有链1 今天讲一下如何搭建以太坊私有连&#xff0c;当然了在你阅读这篇文章的时候&#xff0c;最好是有一定基础&#xff0c;比如…

云服务器代金券

最近腾讯云与阿里云的促销活动都很好&#xff0c;有需要云服务器的可以领取代金券购买 https://www.art-china.club/ 至于配置调试的问题&#xff0c;可以问我&#xff0c;友情帮忙。转载于:https://blog.51cto.com/dnuser/2167896

快排递归非递归python_Python递归神经网络终极指南

快排递归非递归pythonRecurrent neural networks are deep learning models that are typically used to solve time series problems. They are used in self-driving cars, high-frequency trading algorithms, and other real-world applications.循环神经网络是深度学习模型…

仿美团外卖的全栈项目(vue+node+mongodb)带支付-大三求实习

关于 2019届大三学生&#xff0c;前段时间一直想一个人单独开发一个较为完整的项目&#xff0c;在众多应用中&#xff0c;考虑之后选择了美团外卖来模仿&#xff0c;这段时间就利用课余时间进行开发&#xff0c;前端用vuevuexvue-routeraxios&#xff0c;因为需要用到定位和支付…