jvm三个参数设置分析,springboot jvm参数设置

Linux下如何设置jvmStart参数Tomcat可以调整jvm参数,只需修改bin目录下的catalina.sh,服务配置即可修改 。Xmx和Xmn 设置怎么样?问题:如何设置一个新的java服务,或者RPC或者WEB站点的内存 。
1、华为三面:如何做JVM运行状态评估及优化?【jvm三个参数设置分析,springboot jvm参数设置】估算系统QPS,每个请求会创建多少个对象,占用多少内存 , 机器配置选择,应该给年轻一代多少内存,YGC触发的频率,对象进入老年的速度 , 应该给老年多少内存 , FullGC触发的频率 。根据代码 , 这些都是可以合理预测的 。估算完成后 , 可以采用优化的思路,给自己的系统设置一些初始JVMs参数 。比如堆内存的大小,年轻一代的大小,伊甸园与幸存者的比例,老年的大?。蠖韵蟮你兄?nbsp;, 老年对象进入老年的阈值等 。
尽量不要让对象进入老年,这样可以减少FullGC的频率,避免频繁的FullGC影响JVM性能 。一个新系统开发出来后,要经过本地单元测试、系统集成测试、测试环境的功能测试和预发布环境的压力测试 , 确保系统的功能全部正常 。在一定压力下 , 性能、稳定性、并发性正常,最终会部署到生产环境中 。
2、JVM解析 参数调试(以-XX: UseParallelGC为例hotspot/src/share/VM/runtime/globals . HPP和* _ globals.hpp中有这些VM参数的声明 , 然后在对应的cpp文件中有它们的实现 。在productbuild中,被宏展开后,实际上会变成:在JavaMain()函数中会创建一个虚拟机:在创建虚拟机的函数中,会解析虚拟机参数和设置得到对应全局变量的值,例如UseParallelGC 。
Parse_each_vm_init_arg会遍历得到的参数 list,然后根据每个参数赋值对应的设置 sum 。XX: UseParallelGC lgc最后会为设置调用process _ argument (tail,args >忽略未识别,origin) 。
3、Linux里面JVM内存怎么 设置 1 。堆内存相关配置设置堆初始值指令1: xms2g指令2:xx:initialheapsize 2048m设置堆区最大值指令1: `xmx2g。指令二:XX: Max Heapsize 2048m减少堆内存的时间XX:Max Heap freeization 70//堆内存利用率大于70时扩展堆内存,xmsxmx时此参数无效 。默认值为70倍扩展堆内存XX:minheapreperation 40//堆内存利用率小于40时减少堆内存 。在xmsxmx,这个参数是无效的 。默认值为40 。新一代内存分配指令1: xmn512m指令2: 2:XX:MaxNewSize512m2 。两个幸存者区域和伊甸园区域的大小比例指令:XX:SurvivorRatio6//S区域和伊甸园区域在新一代中占1:6 。
4、常用JVM 参数(JDK8Xss:线程堆栈空间Xms:初始堆空间,如Xms512MXmx:最大堆空间,如xmx 512 mxx:minheafpreeratio:堆空间的最小空闲比 。当堆空间的空闲内存小于这个值时,JVM会扩展堆空间 。XX:MaxHeapFreeRatio:堆空间的最大空闲比率 。当堆空间的空闲内存大于这个值时,JVM会压缩堆空间,得到一个更小的堆 。

    推荐阅读