今天在用jmeter对tomcat进行压力测试,经常出现out of memory错误,其实一看就是jvm内存溢出,只要设置tomcat启动是相关jvm参数即可,出于谨慎还是从网上从新认知了jvm设置及垃圾回收。
关于jvm设置及垃圾回收,网上资料很多,个人认为,http://blog.csdn.net/Leolu007/archive/2009/11/23/4857983.aspx还是不错的。此处,只想强调3点:
1、tomcat启动 jvm参数设置,一定要调整-Xms, -Xmx参数,默认heap内存太小,据说把-Xms和-Xmx最好设置成大小一致,并且-Xmx不要超过物理内存的80%。
JAVA_OPTS='-Xms1024m -Xmx1024m'
2、启用jdk的gc日志
看jdk的gc回收日志,还是比较有用的,可以洞悉每次回收花费多少时间,如果每次回收超过2秒钟则需要调整jvm启动参数设置了。
JAVA_OPTS='-verbose:gc -Xloggc:d:/gclog.log'
3、修改jdk默认的垃圾回收机制
Jdk默认的垃圾回收工作方式是Serial Collector,执行速度较慢。由于现在服务器都是多cpu,多核的,因此服务器上的jdk垃圾回收机制建议配置成:Concurent Mark-Sweep(CMS) Collector
JAVA_OPTS=’–XX:+UseConcMarkSweepGC’
分享到:
相关推荐
下面小编就为大家带来一篇浅谈jvm中的垃圾回收策略。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
浅谈jvm原理(概念,运行机制,基本架构,运行时数据区,类加载系统,垃圾回收算法,垃圾回收策略,gc参数,调优策略)
一, 垃圾回收机制 在系统运行过程中会产生一些无用的对象,这些对象一直占用内存,不清理这些无用的对象可能会导致内存耗尽,所有垃圾回收机制的是内存. 垃圾收集的原理和概念 对于对象实例收集.主要有两种基本算法,...
主要介绍了浅谈Java堆外内存之突破JVM枷锁,涉及jvm内存分配,jvm垃圾回收,堆外内存的垃圾回收等相关内容,具有一定参考价值,需要的朋友可以了解下。
文章目录内存回收引用计数法可达性分析浅谈引用强引用软引用弱引用虚引用方法区GC 算法标记-清除算法(Mark-Sweep)复制算法(Copying)标记-整理算法(Mark-Compact)GC算法综合用年轻代老年代永久代枚举根节点安全...
112 5.2.5 服务器JVM进程崩溃 / 113 5.3 实战:Eclipse运行速度调优 / 114 5.3.1 调优前的程序运行状态 / 114 5.3.2 升级JDK 1.6的性能变化及兼容问题 / 117 5.3.3 编译时间和类加载时间的优化 / 122 5.3.4 ...
主要介绍了关于Java的GC垃圾回收器的一些基本概念,牵扯倒JVM内存模型的一些知识,需要的朋友可以参考下
主要介绍了Java的虚拟机结构以及虚拟机内存的优化,讲到了JVM的堆和栈空间及GC垃圾回收等重要知识,需要的朋友可以参考下
主要介绍了Java编程中的内存泄露情况,牵扯到JVM的垃圾回收相关知识,需要的朋友可以参考下
5.3.4 调整内存设置控制垃圾收集频率 5.3.5 选择收集器降低延迟 5.4 本章小结 第三部分 虚拟机执行子系统 第6章 类文件结构 6.1 概述 6.2 无关性的基石 6.3 Class类文件的结构 6.3.1 魔数与Class文件的版本...
答:启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。 40.接口是否可...
汽车由车轮 方向盘 发动机很多部件组成,同时,将这些部件组装成汽车也是一件复杂的工作,Builder 模式就是将这两 种情况分开进行。 设计模式之 Prototype(原型) 用原型实例指定创建对象的种类,并且通过拷贝这些...