在linux环境下配置tomcat的垃圾回收的一些配置,在catalina.sh文件的开头,直接加入
JAVA_OPTS="
$JAVA_OPTS
-server
-Xms64m -Xmx512m
-XX:PermSize=64M -XX:MaxPermSize=128m
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/dump.hprof
-verbose:gc -Xloggc:/home/gc.log -XX:+PrintGCDetails -XX:+PrintGCApplicationStoppedTime
-XX:+PrintGCDateStamps -XX:+PrintHeapAtGC"
解释一下用处
$JAVA_OPTS是引入以前的配置信息
-server 是只服务器
-Xms64m -Xmx512m 堆内存的最小最大空间
-XX:PermSize=64M -XX:MaxPermSize=128m 栈空间的最小最大
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/dump.hprof 出现了内存溢出,将当时的快照信息写入到dump.hprof文件
-verbose:gc gc的一些配置
-Xloggc:/home/gc.log 每次gc写入gc.log日志中
-XX:+PrintGCDetails 打印gc详情
-XX:+PrintGCApplicationStoppedTime 打印垃圾回收时,应用暂停的时间
-XX:+PrintGCDateStamps 输出gc的时间戳
-XX:+PrintHeapAtGC 打印GC前后的详细堆栈信息
贴一段gc信息日志
Total time for which application threads were stopped: 0.0000750 seconds
{Heap before GC invocations=1 (full 0):
PSYoungGen total 19136K, used 16448K [0x00000000f5560000, 0x00000000f6ab0000, 0x0000000100000000)
eden space 16448K, 100% used [0x00000000f5560000,0x00000000f6570000,0x00000000f6570000)
from space 2688K, 0% used [0x00000000f6810000,0x00000000f6810000,0x00000000f6ab0000)
to space 2688K, 0% used [0x00000000f6570000,0x00000000f6570000,0x00000000f6810000)
PSOldGen total 43712K, used 0K [0x00000000e0000000, 0x00000000e2ab0000, 0x00000000f5560000)
object space 43712K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000e2ab0000)
PSPermGen total 65536K, used 12915K [0x00000000dc000000, 0x00000000e0000000, 0x00000000e0000000)
object space 65536K, 19% used [0x00000000dc000000,0x00000000dcc9cf30,0x00000000e0000000)
2018-05-24T15:39:06.084+0800: 0.424: [GC [PSYoungGen: 16448K->2336K(19136K)] 16448K->2336K(62848K), 0.0034480 secs] [Times: user=0.01 sys=0.00, real=0.01 secs]
Heap after GC invocations=1 (full 0):
PSYoungGen total 19136K, used 2336K [0x00000000f5560000, 0x00000000f6ab0000, 0x0000000100000000)
eden space 16448K, 0% used [0x00000000f5560000,0x00000000f5560000,0x00000000f6570000)
from space 2688K, 86% used [0x00000000f6570000,0x00000000f67b8050,0x00000000f6810000)
to space 2688K, 0% used [0x00000000f6810000,0x00000000f6810000,0x00000000f6ab0000)
PSOldGen total 43712K, used 0K [0x00000000e0000000, 0x00000000e2ab0000, 0x00000000f5560000)
object space 43712K, 0% used [0x00000000e0000000,0x00000000e0000000,0x00000000e2ab0000)
PSPermGen total 65536K, used 12915K [0x00000000dc000000, 0x00000000e0000000, 0x00000000e0000000)
object space 65536K, 19% used [0x00000000dc000000,0x00000000dcc9cf30,0x00000000e0000000)
}
2018-05-24T15:39:06.084+0800: 0.424: [GC [PSYoungGen: 16448K->2336K(19136K)] 16448K->2336K(62848K), 0.0034480 secs] [Times: user=0.01 sys=0.00, real=0.01 secs]
发生了gc
将内存dump下来
jmap -dump:format=b,file=/applis/dump.hprof pid号
相关推荐
JVM规范--高手总结 Java相关 1 1.1Java定义 1 1.2Java的开发流程 1 1.3Java运行的原理 2 1.4半编译半解释 3 1.5平台无关性 4 JVM内存模型 4 2.1 JVM规范 5 2.2 Sun JVM 8 ...Java虚拟机(JVM)参数配置说明 30
JVM参数设置详细说明、JVM 参数设置详细说明 1: heap size a: -Xmx 指定jvm的最大heap大小,如:-Xmx=2g b: -Xms 指定jvm的最小heap大小,如:-Xms=2g,高并发应用,建议和-Xmx一样,防止因为内存收缩/突然增大带来...
理解了应用程序的工作负荷和jvm支持的垃圾收集算法,便可以进行优化配置垃圾收集器。 垃圾收集的目的在于清除不再使用的对象。gc通过确定对象是否被活动对象引用来确定是否收集该对象。gc首先要判断该对象是否是...
1. JVM调优 1.1 JVM调优总结(一)-一些概念 1.2 JVM调优总结(二)-一些概念 1.3 JVM调优总结(三)-基本垃圾回收算法 1.4 JVM调优总结(四)-垃圾...4.2 JVM内存管理:深入垃圾收集器与内存分配策略 4.3 深入理解JVM
JVM虚拟机各知识点总结整理, 包括java虚拟机概念、堆、栈、方法区、垃圾回收概念、算法及分代转换、垃圾收集器参数配置、算法实现等各方面内容,每个点都有详细的备注描述介绍
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 ...
3.对Java虚拟机、JMM、垃圾收集机制、GC算法、JVM常用配置参数、GC参数、classLoader、锁机制、JVM故障分析,jmap,jstack等jdk提供的工具命令,性能监控工具(java visualVM),JVM参数调优有一定了解; 4.熟悉java...
2.1.1 垃圾收集和堆大小 2.1.2 jRockit调优 2.2 Server调优 2.2.1 尽量使用本地I/O库 2.2.2 调整默认执行线程数 2.2.3 调整连接参数 2.2.4 创建新的执行队列 2.3 JDBC调优 2.3.1 调整连接池配置 2.4 WEB调优 2.4.1 ...
如何配置垃圾收集 如何配置以支持高负载 在Jetty中部署应用 部署管理器 部署绑定 热部署 Context提供者 如何部署web应用 webApp提供者 如何部署第三方产品 部署展开形式的web应用 使用Jetty进行开发 如何使用Jetty...
该设置消除了许多系统启动过程中的主要垃圾收集事件。SunONE Studio 或其它包含更多模块的 IDE 的用户可能希望将该数值设置得更高。 下面列出了其它一些可能对 ECLIPSE 在某些系统(不是所有系统)上的性能产生...
3.5.9 垃圾收集器参数总结 3.6 内存分配与回收策略 3.6.1 对象优先在Eden分配 3.6.2 大对象直接进入老年代 3.6.3 长期存活的对象将进入老年代 3.6.4 动态对象年龄判定 3.6.5 空间分配担保 3.7 本章小结 第4...
例如,在32G内存的机器上,适当配置Kafka的堆大小和垃圾收集器可以大幅提高性能。消息的可靠性取决于acks的设置,它决定了消息发送者需要等待多少确认。acks=0提供最高吞吐量但最易丢失消息,而acks=all则确保了最高...
【JVM】JVM内存结构,GC垃圾收集解析 52 【JVM】双亲委派模型中,从顶层到底层,都是哪些类加载器,分别加载哪些类? 55 【JVM】能不能自己写个类叫java.lang.System? 57 【JVM】类的加载过程 58 【JVM】类的初始化...
Bea JRockit JVM支持4种垃圾收集器: 46 63.5. 如何从JVM中获取信息来进行调整 46 63.6. Pdm系统JVM调整 47 63.6.1. 服务器:前提内存1G 单CPU 47 63.6.2. 客户机:通过在JNLP文件中设置参数来调整客户端JVM 47 64....
技术点83 解决任务的JVM 启动参数 13.2.4 高效调试的编码准则 技术点84 调试和错误处理 13.3 MapReduce 陷阱 技术点85 MapReduce 反模式 13.4 本章小结 附录A 相关技术 附录B Hadoop 内置的数据导入导出...
技术点79 MapReduce 函数、作业和管道的单元测试13.1.3 ...配置技术点83 解决任务的JVM 启动参数13.2.4 高效调试的编码准则技术点84 调试和错误处理13.3 MapReduce 陷阱技术点85 MapReduce 反...
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 13、sleep() 和 wait() 有什么区别? sleep是线程类(Thread)的...
程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一: System.gc() Runtime.getRuntime().gc() 37.String s = new String(\"xyz\");创建了几个String Object? 答:...
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。 16、sleep() 和 wait() 有什么区别? sleep是线程类(Thread)...