基本参数

  1. -Xms128m JVM初始分配的堆内存
  2. -Xmx512m JVM最大允许分配的堆内存,按需分配
  3. -XX:PermSize=64M JVM初始分配的非堆内存
  4. -XX:MaxPermSize=128M JVM最大允许分配的非堆内存,按需分配

堆(Heap)

   在jvm启动时,会创建一个堆,,所有类实例和数组的内存均从此处分配,,堆,,使用jvm分配给开发者使用的内存, JVM初始分配的堆内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的堆内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;
 空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx 相等以避免在每次GC 后调整堆的大小。

说明:如果-Xmx 不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM,不是Throwable的,无法用try...catch捕捉。

非堆(Non-heap)内存

  jvm 自己使用的内存大小    所有方法区、JVM内部处理或优化所需的内存(如JIT编译后的代码缓存)、每个类结构(如运行时常数池、字段和方法数据)以及方法和构造方法的代码都在非堆内存中

JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。(还有一说:MaxPermSize缺省值和-server -client选项相关,
 -server选项下默认MaxPermSize为64m,-client选项下默认MaxPermSize为32m。这个我没有实验。)
 上面错误信息中的PermGen space的全称是Permanent Generation space,是指内存的永久保存区域。还没有弄明白PermGen space是属于非堆内存,还是就是非堆内存,但至少是属于了。
XX:MaxPermSize设置过小会导致java.lang.OutOfMemoryError: PermGen space 就是内存益出。 
说说为什么会内存益出: 
(1)这一部分内存用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域,它和存放Instance的Heap区域不同。 
(2)GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS 的话,就很可能出现PermGen space错误。
  这种错误常见在web服务器对JSP进行pre compile的时候。 

错误

  1 :-XX:PermSize  在1.8 中已废弃,使用-XX:MetaspaceSize=1024m代替

  2:重复的 Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options.导致启动失败,检查  VM的配置有没有重复

    :1、java环境变量里option的配置

    :2、Tomact    此文件中有没有重复

  :3、build自动构建构建工具中有没有重复

JVM参数详情

https://www.cnblogs.com/LcxSummer/p/10185408.html

最新文章

  1. spout详解
  2. c# htmtToPDF
  3. Android学习笔记(十五)——实战:强制下线
  4. git 教程(6)--管理修改
  5. Atitit org.eclipse.jdt 的ast 架构 Eclipse JDT API spec
  6. PAT-乙级-1046. 划拳(15)
  7. Java实现-------网络蜘蛛
  8. AIX创建用户
  9. nagios安装及监控Linux主机
  10. nyoj 63 小猴子下落 思维
  11. ecshop QQ邮箱发送邮件服务器配置
  12. 章节七、6-Map集合的区别
  13. C code example for strdup
  14. java 版本压缩、解压缩zip
  15. MyEclipse设置字体和背景的方法
  16. 1202. [HNOI2005]狡猾的商人【贪心 或 并查集】
  17. 每个Android开发者必须知道的内存管理知识
  18. 域名DNS解析说明
  19. 大数据(12) - Scala安装与IDE相关配置
  20. CVPR2014 Objectness 源码转换(完整版) VS2012 X64 –>win32

热门文章

  1. LLppdd has a dream!
  2. redis(集群一)主从复制
  3. Shell内置命令expr
  4. 我的黑苹果之路 9400f + msi b360 mortar + 1050ti
  5. Cloudflare-为自己的网站&博客保驾护航
  6. pickle模块 和json模块
  7. 解决vcenter 6.0 vcsa安装插件第二个的时候报错的问题
  8. 编译错误提示PATH_MAX未声明
  9. 38th 字符串与 列表间的转换
  10. org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplic