在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参数配置详解 #### 一、理解JVM参数配置的重要性 Java Virtual Machine (JVM) 是运行Java程序的核心环境,其性能优化很大程度上依赖于正确的JVM参数配置。合理配置JVM参数不仅可以显著提升应用程序的运行...
而“-XX:ParallelGCThreads”和“-XX:ConcGCThreads”分别控制并行和并发垃圾收集的线程数量,调整这两个参数可以优化垃圾收集效率。 总结起来,深入理解JVM内核,熟练掌握诊断技巧,并合理调整JVM配置参数,是每一...
在这个资源中,我们将详细讨论 JVM 内存参数的配置和调优,包括 JVM 的结构、内存管理、垃圾回收、堆和非堆内存、内存分配和限制等方面。 JVM 结构 JVM 的结构主要由六个部分组成:JVM API、JVM 内部组件、平台...
在 Java 中,可以通过命令行参数来配置垃圾收集器,例如 `-XX:+UseSerialGC`、`-XX:+UseParallelGC`、`-XX:+UseConcMarkSweepGC` 等。 在 Server 模式下,JVM 会使用不同的垃圾收集器来提高性能。在 32 位操作系统...
Java虚拟机(JVM)是Java程序运行的基础,它的配置参数和垃圾收集(GC)机制对于优化应用程序性能至关重要。本文将深入探讨JVM参数及其与Java垃圾收集相关的知识。 一、JVM参数详解 JVM参数可以分为三类:启动参数...
【JVM参数配置详解】 Java Virtual Machine (JVM) 是Java程序的核心组成部分,它负责解析和执行Java程序的字节码。JVM的设计目标是提供跨平台的运行环境,通过在实际硬件上模拟一个虚拟的计算机系统,使得Java程序...
2. **Garbage Collection调优**: 使用JMX,可以监视垃圾收集器的运行情况,甚至动态调整GC参数。 3. **类加载监控**: 可以查看已加载的类信息,包括类的数量、大小等。 4. **JVM配置调整**: 通过JMX,可以在运行时...
### 深入详解JVM内存模型与JVM参数详细配置 #### 1. JVM内存模型概述 Java虚拟机(JVM)是运行Java应用程序的核心组件之一,它负责执行Java字节码,并管理应用程序的内存分配。对于Java开发者来说,深入了解JVM的...
- **CMS(Concurrent Mark Sweep)垃圾收集器**:适用于低延迟需求,常用参数有`-XX:+UseCMSInitiatingOccupancyOnly`和`-XX:CMSInitiatingOccupancyFraction`来设定触发并发回收的阈值。 2. **栈内存(Stack ...
这份"JVM配置资料"包含的可能是一系列关于优化JVM性能、理解和调试JVM行为的重要信息。下面将详细讨论JVM配置中的关键知识点。 1. **JVM内存模型**: - **堆内存(Heap Memory)**:分为新生代(Young Generation...
在Java编程中,JVM(Java虚拟机)的垃圾回收机制是自动管理内存的重要部分。垃圾回收机制负责回收那些不再被程序使用、即...开发者需要根据应用特点和运行环境选择合适的垃圾收集器和配置参数,以达到最优的性能表现。
在JVM参数配置中,内存管理是最为关键的部分之一。下面我们将详细解释几个重要的内存相关参数及其作用: 1. **-Xms**: 设置JVM启动时的初始堆内存大小。例如,`-Xms1024m`表示初始堆内存为1024MB。 2. **-Xmx**: ...
JVM提供了多种参数来配置内存大小。例如,`-Xms`和`-Xmx`分别设定JVM堆的初始大小和最大大小;`-XX:NewRatio`和`-XX:SurvivorRatio`用于调整年轻代和老年代的比例;`-XX:PermSize`和`-XX:MaxPermSize`设定永久代的...
理解并正确配置JVM参数对于优化应用程序性能、内存管理和故障排查至关重要。本文将深入探讨JVM的常用参数设置,以及它们如何影响Java应用程序的运行。 一、JVM内存设置 1. **堆内存**: - `-Xms`:初始堆大小,...
JVM参数配置是优化Java应用程序性能的关键环节,通过调整这些参数,我们可以控制JVM的行为,包括内存分配、垃圾收集、类加载等方面。在本文中,我们将深入探讨Java虚拟机的参数配置及其对程序性能的影响。 首先,...
在JVM中,性能调优是一个关键环节,特别是垃圾收集(Garbage Collection, GC)算法的选择和配置,对系统的响应时间、吞吐量以及内存使用效率有着直接影响。本文将深入探讨JVM的组成、垃圾收集的基本概念及其常见算法...
正确的参数配置能够避免内存溢出、提高垃圾收集效率,从而提升整体系统性能。在实际应用中,开发者需要根据应用程序的特性和需求,灵活调整这些参数。同时,结合性能监控工具,如VisualVM或JProfiler,可以帮助更好...
### JVM参数详解 #### Heap Size相关参数 ...通过合理配置这些JVM参数,可以显著提升应用程序的性能表现。然而,最佳的参数配置往往依赖于具体的应用场景和业务需求,因此需要针对特定情况进行细致的测试和调优。
### Java虚拟机(JVM)参数配置详解 #### 引言 在Java及J2EE大型应用的场景下,Java虚拟机(JVM)非标准参数的合理配置对于提升系统的整体性能至关重要。这些参数不仅影响着应用的运行效率,还直接关联到系统的稳定性...
3. **调整垃圾收集参数**:例如设置新生代和老年代的比例,开启并行或并发收集等。 4. **使用JIT编译**:让热点代码被编译为原生机器码,提高执行效率。 5. **监控和诊断工具**:如JConsole、VisualVM等,帮助分析...