JVM配置参数理解,Cannot load this JVM TI agent twice
基本参数
- -Xms128m JVM初始分配的堆内存
- -Xmx512m JVM最大允许分配的堆内存,按需分配
- -XX:PermSize=64M JVM初始分配的非堆内存
- -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
最新文章
- spout详解
- c# htmtToPDF
- Android学习笔记(十五)——实战:强制下线
- git 教程(6)--管理修改
- Atitit org.eclipse.jdt 的ast 架构 Eclipse JDT API spec
- PAT-乙级-1046. 划拳(15)
- Java实现-------网络蜘蛛
- AIX创建用户
- nagios安装及监控Linux主机
- nyoj 63 小猴子下落 思维
- ecshop QQ邮箱发送邮件服务器配置
- 章节七、6-Map集合的区别
- C code example for strdup
- java 版本压缩、解压缩zip
- MyEclipse设置字体和背景的方法
- 1202. [HNOI2005]狡猾的商人【贪心 或 并查集】
- 每个Android开发者必须知道的内存管理知识
- 域名DNS解析说明
- 大数据(12) - Scala安装与IDE相关配置
- CVPR2014 Objectness 源码转换(完整版) VS2012 X64 –>;win32
热门文章
- LLppdd has a dream!
- redis(集群一)主从复制
- Shell内置命令expr
- 我的黑苹果之路 9400f + msi b360 mortar + 1050ti
- Cloudflare-为自己的网站&;博客保驾护航
- pickle模块 和json模块
- 解决vcenter 6.0 vcsa安装插件第二个的时候报错的问题
- 编译错误提示PATH_MAX未声明
- 38th 字符串与 列表间的转换
- org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplic