开发者社区> 问答> 正文

[@小川游鱼][¥20]JVM的最大内存和最小内存设置多大合适?

JVM的最大内存和最小内存设置多大合适?

展开
收起
黄二刀 2018-12-16 14:50:12 3879 0
2 条回答
写回答
取消 提交回答
  • 根据实际服务器的内存来定义,建议JVM maxheap设置为服务器内存的一半,如果服务器内存为8G,建议jvm堆空间为4G。

    2019-07-17 23:22:15
    赞同 展开评论 打赏
  • 阿里云问答专家、阿里云认证云计算工程师、Java研发工程师

    ◆堆内存分配

    JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC后调整堆的大小。

    ◆非堆内存分配

    JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。

    ◆JVM最大内存

    首先JVM内存限制于实际的最大物理内存(废话!呵呵),假设物理内存无限大的话,JVM内存的最大值跟操作系统有很大的关系。简单的说就32位处理器虽然可控内存空间有4GB,但是具体的操作系统会给一个限制,这个限制一般是2GB-3GB(一般来说Windows系统下为1.5G-2G,Linux系统下为2G-3G),而64bit以上的处理器就不会有限制了。

    2019-07-17 23:22:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云服务器ECS内存增强型实例re6全新发布 立即下载
JVM的GC 立即下载
基于JVM的脚本语言开发、运用实践 立即下载