JVM默认物理内存
JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。
默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。
因此服务器一般设置-Xms、-Xmx相等以避免在每次GC后调整堆的大小。
设置JVM内存的参数有四个
-XmxJava Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;
-XmsJava Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;
-XmnJava Heap Young区大小,不熟悉最好保留默认值;
-Xss每个线程的Stack大小,不熟悉最好保留默认值;
启动jar包
java -jar -Xdebug -Xms1024m -Xmx2024m -Xmn700m -Xss16m -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=6011 backend-4.23.0.jar >out.txt 2>err.txt
-Xms1024m 设置JVM促使内存为1024M。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
-Xmx1024m ,设置JVM最大可用内存为1024M。
-Xmn700m**:**设置年轻代大小为700M。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的 3/8。
-Xss16m:
例如:java -jar -Xms1024m -Xmx1536m -XX:PermSize=128M -XX:MaxPermSize=256M XXX.jar
java -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M MyClass
各参数含义:
-Xms128m JVM初始分配的堆内存
-Xmx512m JVM最大允许分配的堆内存,按需分配
-XX:PermSize=64M JVM初始分配的非堆内存
-XX:MaxPermSize=128M JVM最大允许分配的非堆内存,按需分配
如果是tomcat项目启动
JAVA_OPTS="-Xms1024m -Xmx1024m -Xmn700m -Xss16m"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2022-07-27 钉钉提供的内网穿透工具
2018-07-27 c# 判断时间是否在 某一时间段内